


                               Colt FIPP Commands
                                30 Apr 2015 -med


        The Colt Audiometer has two FIPP interfaces. One for an attached 
        computer and one for the user interface used to normally control 
        the Colt Audiometer. 

        Normally the user interface will use a restricted set of 
        commands. An attempt has been made to keep the command structure 
        compatible to the FA10/FA12 audiometer in order to minimize any 
        changes required to existing software. Newer audiometer commands 
        will use the common FIPP numbering system (starting at 0).

        Documentation Note:
        *Cmd 4nnn : These commands are backwards compatible to the FA10.
        Although there may be some differences in the register contents.
        See the individual commands for details.

        !Cmd 4nnn : These commands Support both new and old style command 
        number format. The old style audiometer commands started with 
        0x1000 command numbering. The new style uses the common FIPP 
        numbering system (numbers starting from 0). Generally for these 
        numbers (3 of them) the command will work the same with or 
        without the 0x1000 offset for the command number.

        Only Colt specific commands are shown in this document. See the 
        ColtCmds.txt list for the list of Commands available in the Colt, 
        and the Commands.txt document for the detailed list of all Fipp 
        commands for Fonix instruments. 

        Not all Fipp commands are available on every instrument, and the 
        command format may be different for different instruments. See 
        the instrument specific documentation for details of any command 
        format differences.




















                                        1



        =================================================================
                       FA10 compatible commands
        =================================================================
        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Real-Time Control Registers (*Colt Only*)           *Cmd 4096
        --------
         1000 H            The number 1000H  (4096)
         0000              No data follows

        Response
        --------
         9000 H            The number 9000H (-28672)
         nnnn              variable number of data words
         xxxx              Control register data 
         ....

        This command will return the current (unbuffered) control 
        register information. This is a (real-time) snapshot picture of 
        the registers at the time the command is presented. See the 
        Control Panel Register Definitions for the format and function of 
        the registers.

        NOTE: The Control registers read reflects the last Set Control 
        Registers command, not the physical user interface.

        This command is for the Colt only. It does not work on the 
        FA10/FA12 audiometers. 



























                                        2


        Command                                                    Number
        ----------------------------------------------------------------- 
        Read Control Registers                                  *Cmd 4097
        --------
         1001 H            The number 1 + 1000H  (4097)
         0000 H            No data follows

        Response
        --------
         9001 H            The number 1+9000H (-28671)
         000E              14 data words
         xxxx              Control panel data (FA10/12)
         ....

        Expanded Response
        --------
         9001 H            The number 1+9000H (-28671)
         nnnn              variable data words
         xxxx              Expanded Control panel data (Colt)
         ....

        This command will return the current control register 
        information. This is a snapshot picture of the registers at the 
        time the command is presented. See the Control Panel Register 
        Definitions for the format and function of the registers.

        NOTE: The Control registers read reflects the last Set Control 
        Registers command, not the physical user interface.

        On the FA10 and FA12, the panel registers are 14 words long. On 
        the Colt, the length is dependant upon the software version and 
        operating mode. 

        On the FA10/FA12 This command acts similar to Command 0x1000. 
        (ie it read the unbuffered real-time control register image.) 
        On the Colt this command is buffered. It works similar to command 
        0x1005 except you do not have to make the additional call to 
        adjust the buffer index pointer. Each time this command is called 
        on the colt, the next buffered register set is returned. If there 
        is no new data to read, the current register values are returned.

        The purpose of this command difference was to improve the 
        reliability of existing software that needed to use the old 
        non-real-time communication method. 












                                        3


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Control Registers                                   *Cmd 4098
        --------
         1002 H            The number 2 + 1000H  (4098)
         000E H            14 data words follow
         ....              Control register data (FA10/12)

        Expanded Command 
        --------
         1002 H            The number 2+9000H (-28670)
         nnnn              variable data words
         xxxx              Expanded Control panel data (Colt)
         ....

        This command loads new control register information into the 
        audiometer. If any value is in error, the whole command set will 
        be ignored and a command error will occur.  See the Control Panel 
        Register Definitions for the format and function of the 
        registers. 

        On the FA1x, the computer control bits 7 and 15 control whether 
        the front panel controls the audiometer.  If the Computer control 
        bit is set, then the data passed in the register set will control 
        the operation of the audiometer. If the Computer control bit is 
        cleared, the panel controls will control the audiometer operation 
        and the data passed in the packet will be ignored. 

        This command will return an ACK whether the data provided was 
        valid or not. After giving this command, you must use the Get 
        Command Status (33) to verify whether the command was properly 
        processed or not. 

        NOTE: as a safety feature, anytime an invalid Set Control 
        Registers command is given, the levels in both channels will be 
        set to the minimum value, the stimulus in both channels will be 
        turned off, and the boost flags will be automatically disabled. 

        On the FA10 and FA12, the panel registers are 14 words long. On 
        the Colt, the length is dependant upon the software version and 
        operating mode.















                                        4


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Patient Response Latched Control Registers          *Cmd 4099

         1003 H            The number 3 + 1000H (4099)
         0000 H            No data follows

        Response
        --------
         9003 H            The number 3+9000H (-23669)
         000F H            15 data words follow
         iiii              Buffer index of the data
         xxxx              Control panel data (FA10/12) 
         ....
                                                  
        Expanded Response
        --------
         9003 H            The number 3+9000H (-23669)
         nnnn              variable data words follow
         iiii              Buffer index of the data
         xxxx              Control panel data (Colt)
         ....
                                                  

        When the patient presses the patient response push button while 
        a stimulus is being presented, the current settings of the 
        Control Registers are latched into a special buffer. This is a 
        snapshot picture of the registers at the time the button was 
        pressed. The latched register information is stored into an 
        internal buffer so that it will not be lost if the computer does 
        not read the data before the next response latch. 

        If multiple snapshots are stored in the buffer, the oldest one 
        will be read. See the Control Panel Register Definitions for the 
        format and function of the registers.

        If the computer does not read the latched data from the buffer 
        before it fills up, the new latched data will begin to overwrite 
        the old data. This command will return the oldest data in the 
        latch buffer. If the command is repeated, the same data will be 
        returned. To advance the buffer to the next data to read, you 
        must call the Get Patient Response Counter command (4) after 
        calling this command. 

        See the Control Panel Register Definitions for the format and 
        function of the latch registers. Note that when the front panel 
        is under computer control, the registers read will reflect the 
        settings in the last Set Control Registers command.


        On the FA10 and FA12, the panel registers are 14 words long. On 
        the Colt, the length is dependant upon the software version and 
        operating mode.



                                        5


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Patient Response Latch Counter                      *Cmd 4100

         1004 H            The number 4 + 1000H (4100)
         0000 H            No data follows

        Response                                          
        --------
         9004 H            The number 4+9000H (-28668)
         0001 H            One data word follows
         xxxx              Patient Response Latch Count

        Each time the Patient Response button is pushed while a stimulus 
        button is pressed, the Patient Response counter is incremented by 
        one and the data is stored in the Patient Response Latch buffer. 
        This command allows you to read the current count of latched data 
        in the buffer. If the value is non-zero, it means that there are 
        that many data packets waiting to be read in the buffer. 

        When the Latched Control data is read with function 3, the 
        Patient Response Counter is decremented by one until it reaches 
        zero. When the value reaches zero, there is no more data in the 
        buffer. If you read the buffer anyway with command 3, you will 
        get the last data packet saved in the buffer. If the Patient 
        Response Latch buffer overflows, the new data will overwrite the 
        oldest data in the buffer. The overflow condition will be 
        indicated by the high bit in the count word being set on. See the 
        Control Panel Register Definitions for the format and function of 
        the latch registers.


























                                        6


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get User Interface Registers                            *Cmd 4101

         1005 H            The number 5 + 1000H  (4101)
         0000 H            No data follows
                                                   
        Response
        --------
         9005 H            The number 5+9000H (-23667)
         nnnn              variable data words follow
         xxxx              User interface data   
         ....


        This is a snapshot picture of the user interface at the time the 
        command was given. See the Control Panel Register Definitions for 
        the format and function of the latch registers. Set Control Panel 
        Registers command, not the user interface itself.

        NOTE: When the audiometer is under computer control, the User 
        Interface registers read will reflect the current settings of the 
        user interface panel controls even if the computer is controlling 
        the audiometer in a fashion different than what the user 
        interface is set for. It is up to the user interface to track the 
        user interface panel registers (if it is required - or possible).

        On the FA10 and FA12, the panel registers are 14 words long. On 
        the Colt, the length is dependant upon the software version and 
        operating mode.


























                                        7


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Buffered User Interface Registers                   *Cmd 4102

         1006 H            The number 6 + 1000H  (4102)
         0000 H            No data follows
                                                   
        Response
        --------
         9006 H            The number 6+9000H (-23666)
         nnnn              variable data words follow
         iiii              Buffer index of data 
         xxxx              Front panel data   
         ....

        When the operator changes a control, or the patient presses the 
        patient response push button, the current settings of the User 
        Interface Registers are stored into a special buffer. This is a 
        snapshot picture of the front panel immediately after the change 
        occurs. The front panel information is stored into an internal 
        buffer so that it will not be lost if the computer does not read 
        the data before the next front panel change. If multiple 
        snapshots are stored in the buffer, the oldest one will be read. 

        If the computer does not read the user interface data from the 
        buffer before it fills up, the new data will begin to overwrite 
        the old data. This command will return the oldest data in the 
        buffer. If the command is repeated, the same data will be 
        returned. To advance the buffer to the next data to read, you 
        must call the Get Buffered user Interface Registers Counter 
        command (7) after calling this command. See the Control Panel 
        Register Definitions for the format and function of the latch 
        registers. 

        NOTE: When the audiometer is under computer control, the User 
        Interface registers read will reflect the current settings of the 
        user interface panel controls even if the computer is controlling 
        the audiometer in a fashion different than what the user 
        interface is set for. It is up to the user interface to track the 
        user interface panel registers (if it is required - or possible).

        On the FA10 and FA12, the panel registers are 14 words long. On 
        the Colt, the length is dependant upon the software version and 
        operating mode.












                                        8


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Buffered User Interface Counter                     *Cmd 4103

         1007 H            The number 7 + 1000H   (4103)
         0000 H            No data follows

        Response
        --------
         9007 H            The number 7+9000H (-28665)
         0001 H            One data word follows
         xxxx              Buffered Front Panel Count  


        Each time a control is changed on the user interface, or the 
        patient presses the response button, the counter is incremented 
        by one and the data is stored in the buffered user interface data 
        buffer. This command allows you to read the current count of 
        latched data in the buffer. If the value is non-zero, it means 
        that there are that many data packets waiting to be read in the 
        buffer. When the Buffered User Interface data is read with 
        function 6, the Buffered User Interface Counter is decremented by 
        one until it reaches zero. When the value reaches zero, there is 
        no more data in the buffer. 

        If you read the buffer anyway with command 6, you will get the 
        last data packet saved in the buffer. If the Buffered User 
        Interface data buffer overflows, the new data will overwrite the 
        oldest data in the buffer. The overflow condition will be 
        indicated by the high bit in the count word being set on. See the 
        Control Panel Register Definitions for the format and function of 
        the buffered panel registers.
























                                        9


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get System Status Registers                             *Cmd 4104

         1008 H            The number 8 + 1000H  (4104)
         0000 H            No data follows

        Response
        --------
         9008 H            The number 8+9000H (-28664)
         0008 H            Eight data words follow
         xxxx              System status register data
         ....


            Register  Index  Description
            PBSTAT    [0]    ;copy of control PBstat register
            PBMISC    [1]    ;copy of control PBmisc register
            MSCFLG    [2]    ;misc system control flags
            CALFLG    [3]    ;calibration flags
            COMFLG    [4]    ;com port status flags
            STSPARE1  [5]    ;spare (not currently used)
            STSPARE2  [6]    ;spare (not currently used)
            STSPARE3  [7]    ;spare (not currently used)

        The system status registers can be read at anytime with this 
        command. This provides a means to read the various system status 
        registers without affecting the operation of the audiometer.

        Note that STSPARE1, STSPARE2 and STSPARE3 are not currently used 
        and will return a value of zero. But, you should not rely on 
        these values staying at zero as they will be used for future 
        status information as is needed.

        See the System Status Register Definitions for the format and 
        function of the status registers. 




















                                       10


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Calibration Flags                                   *Cmd 4106

         100A H            The number 10 + 1000H   (4106)
         0000 H            No data follows

        Response
        --------
         900A H            The number 10+9000H (-28662)
         0001 H            One data word follows
         xxxx              Calibration flags  

        The Calibration flags control the calibrated operation of the 
        audiometer and return the status flag condition of the instrument 
        calibration. Only three bits can be written to, bit 4, bit 5, and 
        bit 8. Bits 4 and 5 control whether the output level of the 
        instrument is adjusted by the calibration value or not. Bit 8 
        controls whether the audiometer is in calibration mode. The 
        remainder of the flags are read only and used to provide status 
        information about the instrument calibration. 

        When reading or writing the eeprom, you should test bits 0-3 and 
        bits 9-14 for error result. Bits 4-8 are used to indicate the 
        current state of the instrument and are not related to eeprom 
        transfer errors. When reading table 4, no error will be generated 
        since it is read from ROM and will always be valid. Thus you do 
        not need to test for an error if reading only table 4.

        The calibration can be inhibited for the purpose of calibrating 
        the audiometer, or if an external calibration value is to be used 
        instead of the default internal calibration. If an external 
        calibration is used, then it must be adjusted in the level value 
        sent to the audiometer in the Control Panel Registers. This will 
        only work if the instrument is under computer control. 





















                                       11


            Bit:  Description
             0 : CRC error occurred                     (transfer errors) 
             1 : Timeout error occurred
             2 : Write error occurred
             3 : Verify error occurred

                                                        (operation flags)
             4 : on=Inhibit left channel calibration adjustment 
             5 : on=Inhibit right channel calibration adjustment
             6 : on=left channel is overrange
             7 : on=right channel is overrange
             8 : on=calibration mode enabled
            11 : on=Enable Monitor Calibration output, off=normal output.

                                                          (eeprom errors)
             9 : on=attempt to write to eeprom when not in cal mode 
            10 : on=eeprom user cal failure
            13 : on=eeprom factory cal failure
            14 : on=soft eeprom error (recoverable)

            12 : (reserved)
            15 : (reserved)

        Bits 0-3 contain the EEPROM read/write error flags. 
        Bits 10 and 13 indicate if an EEPROM calibration table is bad. 

        Note: On the FA10, Bits 11 and 12 have a different meaning
        than they do on the Colt. 


        See Also: 199 - Set Transducer Calibration Data
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data
                  4110 - Do NVS Read 
                  4111 - Do NVS Write




















                                       12


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Calibration Flags                                   *Cmd 4107

         100B H            The number 11 + 1000H   (4107)
         0001 H            One data word follows
         xxxx              Calibration flags   

        This command allows the Calibration flags in the audiometer to be 
        set to a new value. See the Get Calibration Flags for an 
        explanation and format of the flags.

        Only three bits can be written to, bit 4, bit 5, and bit 8. Bits 
        4 and 5 control whether the output level of the instrument is 
        adjusted by the calibration value or not.  Bit 8 controls whether 
        the audiometer is in calibration mode. The remainder of the flags 
        are read only and are used to provide status information about 
        the instrument calibration. 

        When a Do EEPROM Read or Do EEPROM Write command is given, bits 
        0-3 and bits 9-14 are automatically zeroed at the start of the 
        command and will be updated to reflect the result of the 
        operation. A good operation will result in the flags all being 
        off (0). A problem will be indicated by one or more flags being 
        on (1). After the instrument is turned on (automatic calibration 
        load from eeprom), or if a manual calibration load or save is 
        performed, the flags will indicate the result of that operation. 

        While the audiometer is on, the calibration table in RAM is 
        continuously checked for integrity (CRC check). Should an error 
        be detected, the instrument will go into fail safe mode and the 
        appropriate error bits will be turned on. 

        Bits 4-8 are used to indicate the current operating status of the 
        audiometer, and will immediately reflect any change that occurs.


        The calibration can be inhibited for the purpose of calibrating 
        the audiometer, or if an external calibration value is to be used 
        instead of the default internal calibration. If an external 
        calibration is used, then it must be adjusted in the level value 
        sent to the audiometer in the Control Panel Registers. This will 
        only work if the instrument is under computer control. 

        The audiometer can also be calibrated using this method by 
        determining the difference between the value selected to get the 
        audiometer to the desired output level on the transducer against 
        the desired Hearing Level. The difference between the two values 
        becomes the calibration level which can be saved either 
        externally in the controlling computer, or internally in the 
        internal EEPROM.


        See Also: 4106 Get Calibration Flags


                                       13


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Current Calibration data                            *Cmd 4108

         100C H            The number 12 + 1000H   (4108)
         0001              One data word follows
         cccc              Which Channel

        Response
        --------
         900C H            The number 12+9000H (-28660)
         nnnn              Length of calibration data in words
         xxxx              Calibration data
         ....


        Channel: 1 = left, 2 = right



        This command will return the current operational calibration data 
        for the currently selected transducer in the audiometer. 
        See the Calibration Table description for the description and 
        format of the calibration table. The calibration data can be read 
        at any time.

        See Also: 199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4109 - Set Current Calibration data
                  4110 - Do NVS Read 
                  4111 - Do NVS Write
























                                       14


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Current Calibration Data                            *Cmd 4109

         100D H            The number 13 + 1000H    (4109)
         nnnn              Length of calibration data in words 
         cccc              Channel
         xxxx              Calibration data 
         ....


        Channel: 1 = left, 2 = right

        This command allows you to set new calibration values in the 
        currently selected transducer in the audiometer. 
        See the Calibration Table description for the description and 
        format of the calibration data. The calibration data can be 
        written to at any time. 

        This does not affect the calibration stored in the internal NVS 
        (EEPROM). The next time the instrument is turned on, the old 
        calibration table will be loaded from the NVS. 

        Use the Do NVS Write command if you wish to save the 
        calibration data into the on-board NVS/EEPROM. 

        Note that a Do NVS Read command will overwrite any calibration 
        data you have sent to the audiometer with this command with the 
        calibration data from the NVS. 

        You should have the Audiometer in Calibration mode before 
        changing the calibration data or reading/writing calibration data 
        to the NVS (see Set Calibration Flags). 

        See Also: 199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4110 - Do NVS Read 
                  4111 - Do NVS Write
















                                       15


        Command                                                    Number
        ----------------------------------------------------------------- 
        Do NVS Read                                             *Cmd 4110 

         100E H            The number 14 + 1000H     (4110)
         0001 H            One data word follows
         xxxx              0-4 = selects the table to use 

             Table 0 :  Primary User calibration table
             Table 1 :  Secondary User calibration table
             Table 2 :  Primary Factory calibration table
             Table 3 :  Secondary Factory calibration table
             Table 4 :  Default calibration table (from ROM)

        This command causes the calibration data stored in the internal 
        NVS (Non-Volitile Storage - aka EEPROM) to be read into the 
        audiometer. This can be used to restore the original calibration 
        table after it was modified through the Set Calibration Data 
        command.

        This command will return an ACK response regardless of whether 
        the table was read correctly or not. You should use the Get 
        Calibration Flags command to determine if the table was properly 
        read or not. Note: Since you can never have an error from table 
        4, there is no need to check for errors when reading table 4.

        You should have the Audiometer in Calibration mode before 
        changing the calibration data or reading/writing calibration data 
        to the EEPROM (see Set Calibration Flags).

        See Also: 199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data
                  4111 - Do NVS Write




















                                       16


        Command                                                    Number
        ----------------------------------------------------------------- 
        Do NVS Write                                            *Cmd 4111

         100F H            The number 15 + 1000H    (4111)
         0001 H            One data word follows
         xxxx              0-3 selects the table to use 

             Table 0 :  Primary User calibration table
             Table 1 :  Secondary User calibration table
             Table 2 :  Primary Factory calibration table
             Table 3 :  Secondary Factory calibration table

        This command causes the data in the current operational 
        calibration table to be saved to the NVS 
        (Non-Volitile Storage - aka EEPROM). This can be used to 
        update the NVS with new calibration data. 

        This command will return an ACK response regardless of whether 
        the table was written correctly or not. You should use the Get 
        Calibration Flags command to determine if the table was properly 
        written or not. 

        NOTE: As a safety feature, the audiometer must be in calibration 
        mode for this command to have an effect. If the audiometer is not 
        in calibration mode a command error will occur, and the command 
        will be ignored. See the Set Calibration Data commands and Set 
        Calibration Flags commands.

        See Also: 199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data
                  4110 - Do NVS Read 





















                                       17


        Command                                                    Number
        ----------------------------------------------------------------- 
        Do Patient Response Latched Control Array Flush         *Cmd 4127

         101F H            The number 31 + 1000H  (4127)
         0000 H            No data sent


        The Do Patient Response Latched Control Array Flush command will 
        set the latched control count to zero (flush it). This 
        effectively discards the data in the latch array. 


        Command                                                    Number
        ----------------------------------------------------------------- 
        Do Buffered User Interface Array Flush                  *Cmd 4128

         1020 H            The number 32 + 1000H  (4128)
         0000 H            No data sent


        The Do Buffered User Interface Array Flush command will set the 
        Buffered User Interface count to zero (flush it). This effectively 
        discards the data in the buffer array. 
































                                       18


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Level Boost Flags                                   *Cmd 4133

         1025 H            The number 37 + 1000H (4133)
         0001 H            One data word follows
         xxxx              Level Boost flags

                  0 = Clear both left and right level boost flags
                  1 = Set left level boost flag, clear right flag
                  2 = Set right level boost flag, clear left flag
                  3 = Set both left and right boost flags

        To be able to set the audiometer to a level greater than 110HL, 
        an additional boost command must be given to release the level 
        limit in the audiometer. If the level limit is not released, the 
        audiometer will not allow the level to be set above 110HL. The 
        Level boost is only valid for the following Set Control Panel 
        function. If any other command (except Get Command Status) is 
        called, it will automatically clear the boost flag. You must call 
        this command each time prior to calling Set Control Panel 
        Registers if you want to set the level to greater than 110HL. 
        This is a safely feature to prevent accidentally setting the 
        output level to an excessive value.
































                                       19


        ==================================================================
                 Dual Support commands (old and new audiometers)
        ==================================================================

        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Version                                    (!Cmd 4124) Cmd 28

         101C H or 001C H   The number 28 [+ 1000H]   (4124)
         0000 H    0000 H   No data sent

        Response
        --------
         901C H   801C H   The number 28+8000H {+1000H}       or (-28644)
         nnnn     nnnn     Variable number of data words         (-32740)      
         vvvv     vvvv     Software Version number 
         oooo     oooo     Standard option low word
         oooo     oooo     Standard option high word
         cccc     cccc     Custom option
         cccc     cccc     Expanded option 
         tttt     tttt     Machine type
         ssss     ssss     Machine Subtype 
         mmmm     mmmm     Machine Model   <optional>


        The Get Version command will return the current version and unit 
        identification information. For compatibility with existing 
        software, this command will respond to the 101CH (28+1000H) 
        command, or the 001CH (28) command. 

        The response contains the version number, option codes, and 
        custom option codes of the current software being used in the 
        instrument. The version number is given * 100. Thus Version 1.10 
        would appear as the number 110. The option codes are bit patterns 
        which describe the options that have been installed in the 
        instrument. Machine type indicates which machine is responding 
        to the communications. Machine SubType indicates additional 
        specific configurations of the instrument.
        Machine Model is a unique identifier for the instrument model.
        This number is used to identify the specific model of the 
        instrument and to notify the attached computer of the instrument 
        it is talk to so that it can perform any adaptations required.

        See also: 95 - Get Version
                  213 - Get System Information











                                       20


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Cmd Status                                (!Cmd 4129)  Cmd 33

         1021 H or 0021 H  The number 33 [+ 1000H] (4129)
         0000 H    0000 H  No data sent

        Response
        --------
         9021 H   8021 H   The number 33+8000H {+1000H}          (-28639) 
         0001 H   0001 H   One data word                      or (-32735)   
         xxxx     xxxx     Command Status

        The Get Command Status command will return the current command 
        status information. If a bad command was sent that could not be 
        operated on, this function will return a single word non-zero 
        value. 

             Status: Bit 0 = General failure (NZ=bad, Z=good)
                     Bit 1 = Left channel failure  (1021 H cmd only)
                     Bit 2 = Right channel failure (1021 H cmd only)

        For compatibility with existing software, this command will 
        respond to the 1021H (33+1000H) command, or the 0021H (33) 
        command, although the response is slightly different between the 
        two. Command 0021H only returns bit 0 status. Command 1021H 
        returns status information in bits 0,1,2. 

        For command 0021H, only bit zero returns information. This 
        response contains the command status since the last time the 
        command status was read. Bit 0 will be reset (set to 0) on the 
        first command given other than a command status request (this 
        allows multiple command status calls without losing the status). 

        When a command cannot be correctly processed it will be discarded 
        and bit 0 will be set to a one (1). The command status is not 
        affected when a "NAK" or "ILLegal" response is returned. It is 
        affected only if the instrument accepted the command for 
        processing (responded with an ACK to the command).

        For command number 1021H bits 1 and 2 also return information.
        Should the command cause the left or right channel to go into an 
        error condition (normally it will be an out of calibration 
        error), Bit 1 and/or Bit 2 will be set on (1) to indicate the 
        error. These bits will only be cleared (set to zero) by clearing 
        the cause of the error.










                                       21



        Command                                                    Number
        ----------------------------------------------------------------- 
        Do Reset                                      (!Cmd 4134)  Cmd 38

         1026 H or 0026 H  The number 38 [+ 1000H]  (4134)
         0000 H    0000 H  No data sent


        The Do Reset command will cause the audiometer to be reset. This 
        has the same effect as turning the instrument off and back on. 
        This insures that the audiometer is returned to the default power 
        on conditions. Any temporary register values will be discarded.
        The reset command does not perform the power on self-diagnostics.

        For compatibility with existing software, this command will 
        respond to the 1026H (38+1000H) command, or the 0026H (38) 
        command. 






































                                       22


        ==================================================================
                              New Audiometer Commands 
        ==================================================================

        Command                                                    Number
        -----------------------------------------------------------------
        Get Transducer Calibration Data                           Cmd 111

        006F H    The number 111
        nnnn H    One, Two or three words sent
        xxxx      Channel
        yyyy      Transducer output (destination) <optional>
        zzzz      Cal data selection <optional>

        Response
        --------
        806F H    The number -32657
        cccc      Data words <variable>


        This command returns the current calibration information for the 
        specified transducer on the specified channel. 

        Colt Example parameters:
          Channel: 0=<reserved>
                   1=left
                   2=right

          Transducer: 0=<reserved> 
                      1=Phone 
                      2=Insert 
                      3=Bone 
                      4=Speaker
                      5=Line
                      6=HF Phone
                      7=<reserved>
                      8=<reserved>

          Cal Data Selection:
                      0: Entire data structure
                      1: Cal Stamp section
                      2: Frequency list section
                      3: Calibration corrections section
                      4: RetSpl data section
                      5: Maximum HL data section
                      6: <reserved>
                      7: <reserved>

        Warning: The transducer selections are not always the same as the 
        transducer selections in the real-time register commands (such as 
        on the Colt audiomter). So don't try to use a common indexing 
        method between the two methods.




                                       23


        All data is in byte packed little endian (Intel) format. 
        If selection 0 is used, the entire calibration data information 
        for the selected destination is returned. If the selection 
        provided is 1->6, then only the specified transducer calibration 
        data section is returned. 

        The first item (16bit int) in the frequency section is the number 
        of frequencies in the list (data is a 16Bit integer array in 
        Hertz). Sections 3 to 5 will contain the matching data points for 
        each frequency (with the first data point being the first 
        frequency, and so on). Data is 16Bit integer array in DB*100 
        format.

        The CalStamp section contains information on when and how the 
        calibration was done. 

        struct cal_tCalStamp {
          tPackedCalDate Date; //4 bytes
          INT16 IntStatus;     //2 bytes (0=no cal - used by Colt unit)
          INT16 ExtStatus;     //2 bytes (for use by extern programs)
          INT16 DeviceID;      //2 bytes
          char Device[CAL_MAX_TEXT];     //16 bytes (ASCII text)
          char SerNumber[CAL_MAX_TEXT];  //16 bytes (ASCII text)
          char CalByWho[CAL_MAX_TEXT];   //16 bytes (ASCII text)
        }PACKED; //56 bytes

        Date is the Frye packed format date of calibration date.
        IntStatus is for use internally by the Colt software only. 
        ExtStatus is provided for external programs to be able to 
        store their status information in the calibration data.
        Device is a 16 byte null terminated string array that describes 
        the attached transducer. 
        SerNumber is a 16 byte null terminated string array that contains 
        the serial number of the attached transducer. 
        CalByWho is a 16 byte null terminated string array that is used 
        to indicate who performed the transducer calibration. 

        Note: The transducer calibration is tied to the physical output
        on the audiometer. The calibration does not move if you move
        the transducer. You must keep it in the output for which it 
        was calibrated.

        This command is instrument specific. Refer to the documentation 
        for the instrument for the details of how this command works on 
        the instrument.

        Note: Not all instruments support this command.

        See Also: 199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data



                                       24


        Command                                                    Number
        -----------------------------------------------------------------
        Do Calibration Adjust                                     Cmd 144

        0090 H    The number 144
        nnnn      Two or three data words 
        cccc      Channel 
        wwww      Which data
        xxxx      Adjustment in DB*100 <optional>

        Response
        --------
         8090 H   The number 144+8000H                  
         0001 H   One data word                      
         xxxx     Current Value in DB*100

        In normal operation, this command adjusts the current calibration
        correction by the indicated amount. This is a special case
        command and is not available on all instruments. Nor may it be
        implemented the same way on all instruments. Refer to the
        instrument specific documentation for specific information about
        this command.

        Channel: 0=<reserved>, 1=Left, 2=Right
        Which: 0=Offset, 1=Maximum HL, 2=<reserved>

        Typical usage (Colt):
        The first value is the transducer channel to be adjusted (1=Left, 
        2=Right). The second value selects which calibration selection is 
        to be adjusted 0=Offset, 1=Maximum HL). 
        The third value is the sensitivity correction to use for the 
        currently active transducer on the selected channel.
        The command will return the current value for the selected 
        transducer.


        If the third value is not given or is set to 8000H, the 
        calibration is not adjusted and the current value is returned. 

        Refer to the specific instrumentation document for the details of 
        operation on specific individual instruments. 

        Note: this command is primarily intended for internal factory
        automation use. It is available as is to the user.

        See Also: 111 - Get Transducer Calibration Data
                  199 - Set Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data
                  4110 - Do NVS Read 
                  4111 - Do NVS Write



                                       25


        Command                                                    Number
        -----------------------------------------------------------------
        Set User ID Text                                          Cmd 166

        00A6 H    The number 166
        cccc      Number words of data (16 or 29)
        xxxx      Selection (0=default, 1=user#1, 2=user#2, etc...)
        dddd      Label data (null terminated)

        This command sets the User ID text. If a User ID text string is 
        empty (the first character is a null (0), the User ID text string 
        will not be displayed. Multiple lines can be sent by sending 
        additional text after the trailing null. Text is in ascii format. 
        Older instruments used big endian format. Newer instruments may 
        use little endian format. See the instrument specific docs.

        Colt:

        On the Colt, the data is a single string in packed little endian 
        ASCII single character font format using a standard "C" type 
        string with a NULL (0) termination character. The string can be 
        any length up to 255 characters. 
        The User ID is automatically saved on the Colt.


        Older Instruments (FP35, 7000, 8000):

        Note: Some instruments allow setting the Default ID text (lines 9 
        and 10) that are just below the standard label text using Cmd 66.
        Reading the label with cmd 86 will always return the currently
        active User ID text regardless of what was sent via cmd 66. Use 
        cmd 167 to specifically read the Default ID Text.

        The User ID string consists of two additional lines of text that 
        can be printed just below the first eight lines of the printer 
        label. If a Default ID text string is provided, it will be 
        displayed only if there is no Custom User ID text string. (ie The 
        Custom User ID text string has priority.) If neither ID string is 
        available, nothing is displayed in the ID fields (lines 9 & 10).

        Each line of the text is composed of up to 27 data bytes and a 
        null terminator for a total of 28 bytes per line.  Any data after 
        the first null found in a line up to the beginning of the next 
        line will be ignored. The content of the remaining characters in 
        the line are unimportant, but it is recommended that they be 
        nulls. If on any given line a null is not found by the 28th 
        character, the 28th character is replaced by a null. 

        Both User ID text lines must be sent. If you wish to allow the 
        Default ID text to be displayed, the first character in the 
        selected Custom User ID should be a null (0). Each line is 
        handled separately so that either one can be replaced on its own.

        The User ID text is saved at the same time that the printer label 
        text is saved (see cmd 89). Any changes made are immediately 

                                       26


        effective and will be shown on the label on the next printout.

        See also: 167 - Get User ID Text





















































                                       27


        Command                                                    Number
        -----------------------------------------------------------------
        Get User ID Text                                          Cmd 167

        00A7 H    The number 167
        0001 H    One data word follows
        xxxx      Selection (0=default, 1=user1, 2=user2, etc...)

        Response
        --------
        80A7 H    The number -32601
        xxxx      variable number of words follow

        This command gets the stored User ID text. 
        See Cmd 166 for details.

        Colt:
        On the Colt, the data is a single string in packed little endian 
        ASCII single character font format using a standard "C" type 
        string with a NULL (0) termination character. The string can be 
        any length up to 255 characters. 
        The User ID is automatically saved on the Colt.


        Older Instruments (FP35, 7000, 8000):
        Note: Some instruments allow setting the Default ID text (lines 9 
        and 10) that are just below the standard label text using Cmd 66.
        Reading the label with cmd 86 will always return the currently
        active User ID text. Use cmd 167 to specifically read the Default 
        ID Text.

        The User ID string consists of two additional lines of text that 
        can be printed just below the first eight lines of the printer 
        label. If a Default Custom ID text string is provided, it will 
        will be displayed only if there is no Custom User ID text string. 
        (ie The Custom User ID text string has priority.) If neither ID 
        string is available, nothing is displayed in the User ID fields.

        Each line of the text is composed of up to 27 data bytes and a 
        null terminator for a total of 28 bytes per line.  Any data after 
        the first null found in a line up to the beginning of the next 
        line is ignored. 

        Notes: For historical reasons, on older instruments (FP35, 7000, 
        8000) the packet data is in Motorola format (the 6500 used a 
        68000 type cpu). This is backwards from the Intel format on most 
        desktop PCs. You can convert the data to Intel format by 
        exchanging the bytes in each word in the packet.


        See also: 166 - Set User ID Text





                                       28


        Command                                                    Number
        -----------------------------------------------------------------
        Set Transducer Calibration Data                           Cmd 199

        00C7 H    The number 199
        nnnn      Variable length
        xxxx      Channel
        yyyy      Transducer output

        This command is used to send the calibration information for the
        specified transducer of the specified channel to the instrument. 
        This command is instrument specific. Refer to the documentation 
        for the instrument for the details of how this command works on 
        the instrument.

        Note: Not all instruments support this command.

        Example Colt Parameters:
          Channel: 0=<reserved>
                   1=left
                   2=right

          Transducer: 0=<reserved> 
          output      1=Phone 
                      2=Insert 
                      3=Bone 
                      4=Speaker
                      5=Line
                      6=HF Phone
                      7=<reserved>
                      8=<reserved>

        Note: The transducer calibration is tied to the physical output
        on the audiometer. The calibration does not move if you move
        the transducer. You must keep it in the output for which it 
        was calibrated.


        See Also: 111 - Get Transducer Calibration Data
                  4106 - Get Calibration Flags 
                  4107 - Set Calibration Flags
                  4108 - Get Current Calibration data
                  4109 - Set Current Calibration data
                  4110 - Do NVS Read 
                  4111 - Do NVS Write











                                       29


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Volume Control Data                                       200

        Standard command format:
         00C8 H    The number 200
         0000 H    No data sent

        Expanded command format:
         00C8 H    The number 200
         0001 H    one data word sent
         nnnn      control selection

        Response
        --------
         80C8 H   The number 200+8000H 
         nnnn     variable number of data words       
         ....     volume control data


         Selection:
          0 = get all controls
          1 = get control #1
          2 = get control #2
          3 = get control #3
          etc...

        If no selection parameter is given, it is equivalent to selection 
        0 (get all controls). If get all controls is selected, then data 
        is returned for all the controls. Depending on the instrument, 
        the data may be numeric values representing control position, or 
        dB values representing the control set value.

        For the Colt, the data is in dB*100 format with 0dB being the 
        center position of the volume control. A minimum of +-20dB is 
        required for the control, although the FIPP command may provide 
        greater range than the panel control provides. 


         Colt Volume Control Selections:
           1 = Monitor  : Monitor volume in dB (+-20dB)
           2 = TalkFwd  : Talk Forward volume in dB (+-20dB)
           3 = TalkBack : Talkback volume in dB (+-20dB)
           4 = LeftVol  : Left Speech volume in dB (+-20dB)
           5 = RightVol : Right Speech volume in dB (+-20dB)


        See Also: 201 - Set Volume Control Data








                                       30


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Volume Control Data                                       201

         00C9 H     The number 201
         nnnn       variable data sent
         xxxx       selection
         ....       volume control data

         Selection:
          0 = set all controls
          1 = set control #1
          2 = set control #2
          3 = set control #3
          ect...

        If set all controls is selected, then data is provided for all 
        the controls. Depending on the instrument, the control data may 
        be numeric values representing control position, or dB values 
        representing the control set value.

        For the Colt, the data is in dB*100 format with 0dB being the 
        center position of the volume control. A minimum of +-20dB is 
        required for the control, although the FIPP command may provide 
        greater range than the panel control provides. 

        If a negative value is given which is more negative than the 
        system can handle (ie -32767), volume is set to off. 
        If the value is larger than the system can handle (eg 32767), the 
        volume is set to the maximum possible value.

         Colt Volume Control Selections:
           1 = Monitor  : Monitor volume in dB (+-20dB)
           2 = TalkFwd  : Talk Forward volume in dB (+-20dB)
           3 = TalkBack : Talkback volume in dB (+-20dB)
           4 = LeftVol  : Left Speech volume in dB (+-20dB)
           5 = RightVol : Right Speech volume in dB (+-20dB)

        See Also: 200 - Get Volume Control Data

















                                       31


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Volume Control Mode                                       202

        Standard command format:
         00CA H    The number 202
         0000 H    No data sent

        Expanded command format:
         00CA H    The number 202
         0001 H    one data word sent
         nnnn      control selection

        Response
        --------
         80CA H   The number 202+8000H 
         nnnn     variable number of data words       
         ....     volume control mode


         Selection:
          0 = get all controls
          1 = get control #1
          2 = get control #2
          3 = get control #3
          ect...

        If no selection parameter is given, it is equivalent to selection 
        0 (get all controls). If get all controls is selected, the mode 
        is returned for all the controls. This command is not currently 
        used in the Colt.

        See Also: 203 - Set Volume Control Mode























                                       32


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Volume Control Mode                                       203

         00CB H     The number 203
         nnnn       variable data sent
         xxxx       selection
         ....       volume control mode
         ....       (optional mode for Control #2)
         ....       (optional mode for Control #3)

         Selection:
          0 = set all controls
          1 = set control #1
          2 = set control #2
          3 = set control #3
          ect...

        If set all controls is selected, the mode is provided for all the 
        controls.  This command is not currently used in the Colt.

        See Also: 202 - Get Volume Control Mode


































                                       33


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Meter Data                                                204

         00CC H    The number 204
         0000 H    No data sent

        Expanded Format:
         00CC H    The number 204
         0001 H    One data word sent
         xxxx      Meter selection      

        Response
        --------
         80CC H   The number 204+8000H 
         nnnn     two data words       
         LLLL     left meter data
         RRRR     right meter data

        The Get Meter Data returns the current meter data.
        Depending on the instrument, the data may be numeric values 
        representing meter position, or dB values representing the 
        meter set value.

        If the meter selection is sent with the command, then only that 
        meter information is returned. A meter selection of zero is the 
        same as not sending a meter selection (the data for both meters 
        is returned).

        This command is not currently used on the Colt.


























                                       34


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Meter Data                                                205

         00CD H    The number 205
         nnnn      2 or 3 data words 
         xxxx      Meter selection. (0, 1 or 2)
         ....      Meter data (one word for selction 1 or 2)
         ....                 (two words for selection 0)

        The Set Meter Data sets the meter data. This is used to override 
        the current meter data. When set, the meter will be set to the 
        specified value. 

        Depending on the instrument, the data may be numeric values 
        representing meter position, or dB values representing the 
        meter set value.

        This command is normally used for testing the VU meter positions 
        on the audiometer or to override the meter to force it to a fixed 
        postion. The user interface does not normally use this command, 
        it is normally used by the computer interface for testing the 
        meters. 

        To release the meters to normal operation, the value 32768 
        (0x8000) is sent. 

        If the meter selection is zero, then the data for both meters 
        must be provided (Left first, right second).
        Selection 1 = Left meter, Selection 2 = Right meter.

        This command is not currently used on the Colt.
























                                       35


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Meter Mode                                                206

         00CE H    The number 206
         0000 H    No data sent

        Expanded Format:
         00CE H    The number 206
         0001 H    One data word sent
         xxxx      Meter selection 

        Response
        --------
         80CE H   The number 206+8000H 
         nnnn     two data words       
         LLLL     left meter mode 
         RRRR     right meter mode

        The Get Meter Mode returns the current meter operating mode.
        Depending on the instrument, the meter may be in VU mode or PPM 
        mode. (American audiometers use VU mode.) It can also be 
        disabled if desired.

        If the meter selection is sent with the command, then only that 
        meter information is returned. A meter selection of zero is the 
        same as not sending a meter selection (the mode for both meters 
        is returned).

        Mode:
          0 = disabled
          1 = VU meter
          2 = PPM meter

        Normally this command is used by the computer to control the 
        meter operation of the audiometer and by the user interface to 
        determine the meter format to use on the display.

        This command is not currently used on the Colt.

















                                       36


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Meter Mode                                                207

         00CF H        The number 207
         nnnn          2 or 3 data words 
         xxxx          Meter selection. (0, 1 or 2)
         .... [L or R] Meter mode (one word for selction 1 or 2)
         .... [R]                 (two words for selection 0)

        The Set Meter Mode sets the meter mode. This is used to override 
        the current meter mode. When set, the meter will be set to the 
        specified mode. 

        Depending on the instrument, the meter may be in VU mode or PPM 
        mode. (American audiometers use VU mode.) 

        If the meter selection is sent with the command, then only that 
        meter mode is set. A meter selection of zero is the 
        same as not sending a meter selection (the mode for both meters 
        is set).

        Mode:
          0 = disabled
          1 = VU meter
          2 = PPM meter

        Normally this command is used by the computer to control the 
        meter operation of the audiometer and by the user interface to 
        determine the meter format to use on the display.


        If the meter selection is zero, then the mode for both meters 
        must be provided (Left first, right second).
        Selection 1 = Left meter, Selection 2 = Right meter.

        This command is not currently used on the Colt.



















                                       37



        Command                                                    Number
        -----------------------------------------------------------------
        Get Patient ID                                                208

         00D0 H        The number 208
         0000          No data sent

        Response
        --------
         80D0 H   The number 208+8000H 
         nnnn     variable number of data words       
         ....     Patient ID (ASCII characters)


        The Get Patient ID returns the Patient ID in the instrument.

        On the Colt, the data is a single string in packed little endian 
        ASCII single character font format using a standard "C" type 
        string with a NULL (0) termination character. The string can be 
        any length up to 255 characters. 
        The Patient ID is automatically saved on the Colt.


        See also: 209 - Get Patient ID































                                       38



        Command                                                    Number
        -----------------------------------------------------------------
        Set Patient ID                                                209

         00D1 H        The number 209
         nnnn          Variable data words
         ....          Patient ID (ASCII characters)

        The Set Patient ID sets the Patient ID in the instrument.

        On the Colt, the data is a single string in packed little endian 
        ASCII single character font format using a standard "C" type 
        string with a NULL (0) termination character. The string can be 
        any length up to 255 characters. 
        The Patient ID is automatically saved on the Colt.



        See also: 208 - Get Patient ID




































                                       39


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get System Calibration Data                                   210

        Standard command format:
         00D2 H    The number 210
         0001 H    one data word sent
         nnnn      calibration selection (0=all)

        Response
        --------
         80D2 H   The number 210+8000H 
         nnnn     variable number of data words       
         xxxx     Control Selection (0=all)
         ....     volume control calibration data


         Selection:
          0 = get all audiometer control calibrations

        Data is in DB*100 format. 
        The calibration value adjusts the control center position (0dB 
        point). a value of 1000 will move the center position of the 
        control to provide 10dB higher output at the volume control 0dB 
        setting. A value of -1000 will move the control to provide 10dB 
        lower output at the volume control 0dB setting. 

        Currently the Colt only supports selection 0 (get all 
        control calibrations). Data is returned in the following format.

        Colt Volume Control Format:
          [0] : Selection (0)
          [1] : Left Monitor volume calibration
          [2] : Right Monitor volume calibration
          [3] : TalkBack Mic volume calibration
          [4] : Talk Forward Mic volume calibration
          [5] : External Ch1 (left) volume calibration
          [6] : External Ch2 (right) volume calibration
          [7] : File Ch1 (left) volume calibration
          [8] : File Ch2 (right) volume calibration
          [9] : Patient Response Tone calibration



        See also: 211 - Set System Calibration Data











                                       40


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set System Calibration Data                                   211

         00D3 H     The number 211
         nnnn       variable data sent
         xxxx       selection
         ....       volume control calibration data

         Selection:
          0 = set all audiometer control calibrations


        Data is in DB*100 format. 
        The calibration value adjusts the control center position (0dB 
        point). a value of 1000 will move the center position of the 
        control to provide 10dB higher output at the volume control 0dB 
        setting. A value of -1000 will move the control to provide 10dB 
        lower output at the volume control 0dB setting. 

        Currently the Colt only supports selection 0 (set all 
        control calibrations). Data is sent in the following format.

        Colt Volume Control Format:
          [0] : Selection (0)
          [1] : Left Monitor volume calibration
          [2] : Right Monitor volume calibration
          [3] : TalkBack Mic volume calibration
          [4] : Talk Forward Mic volume calibration
          [5] : External Ch1 (left) volume calibration
          [6] : External Ch2 (right) volume calibration
          [7] : File Ch1 (left) volume calibration
          [8] : File Ch2 (right) volume calibration
          [9] : Patient Response Tone calibration



        See also: 210 - Get System Calibration Data


















                                       41


        Command                                                    Number
        ----------------------------------------------------------------- 
        Save System Calibration Data                                  212

         00D4 H     The number 212
         0001       one data word sent
         xxxx       selection


         Selection:
          1 = save all audiometer control calibrations

        See also: 
          210 - Get System Calibration Data
          211 - Set System Calibration Data









































                                       42


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get System Information                                        213

         00D5 H     The number 213
         nnnn       None or one data word sent
         xxxx       selection <optional>


         Selection:
          0 = Get base software version
          n = Get additional software version

        If no paramter is given, returns the number of software packages 
        that are in the system. If a number is given, the information for 
        the specified software package is returned. 

        This command is instrument specific. Refer to the instrument 
        documentation for additional details. 

        Response
        --------
         80D5 H   The number 213+8000H 
         nnnn     variable number of data words       
         xxxx      Software1 Version Number 
         ssss      Software1 BuildDate (low word)   <optional data>
         ssss      Software1 BuildDate (high word)  <optional data>
         bbbb      Software1 BuildNumber            <optional data>


        See also: 95 - Get Software Information 
                  213 - Get Software Version
























                                       43


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Pass Thru Data                                            214

         00D6 H     The number 214
         nnnn       One data word sent
         ssss       Selection (0=default selection)


        This command allows transfering data between instrument control 
        computers where there is more than one computer attached to the 
        instrument. 

        Selection defines which external system to get the data from. 
        If this instrument does not support multiple systems, 0 is used 
        for the selection (and the command is rejected if any other 
        selection is used). 

          Colt Selections:
           0: base unit
           1: Tablet (Bluetooth)
           3: Computer (USB)



        Response
        --------
         80D6 H   The number 214+8000H 
         nnnn     variable number of data words       
         ....      Data 


        The data format can be in any form (other than the required 
        standard FIPP cmd/size header). The only limitation is that the 
        data packet must be no longer than 1000 words and the size is 
        specified as words. You can break up the data within the packet 
        to be whatever form you wish. This command is simply used as a 
        transport agent for the data.


        This command is instrument specific. Refer to the instrument 
        documentation for additional details. 

        See also: 215 - Set Pass Thru Data












                                       44


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Pass Thru Data                                            215

         00D7 H     The number 215
         nnnn       variable number of data words sent
         ssss       Selection (0=default selection)
         ....       Data

        This command allows transfering data between instrument control 
        computers where there is more than one computer attached to the 
        instrument. 

        Selection defines which external system to send the data to. 
        If the instrument does not support multiple destinations, 0 is 
        used for the selection (and the command is rejected if any other 
        selection is used). 

          Colt Selections:
           0: base unit
           1: Tablet (Bluetooth)
           3: Computer (USB)


        The data format can be in any form (other than the required 
        standard FIPP cmd/size/selection header). The only limitation is 
        that the data packet must be no longer than 1000 words and the 
        size is specified as words. You can break up the data within the 
        packet to be whatever form you wish. This command is simply used 
        as a transport agent for the data.

        The Set Pass Thru and Get Pass thru commands share a common 
        buffer. The Selection parameter specifies who the data is for.
        The data will remain in the buffer until it is replaced by other 
        data. If data is present in the buffer and it is not your data, 
        you should not use the command. It is up to the destination to 
        clear the data (or the original sender if required). 
        The data is cleared by sending a command with a zero length data 
        packet. 


        This command is instrument specific. Refer to the instrument 
        documentation for additional details. 

        See also: 214 - Get Pass Thru Data











                                       45


        Command                                                    Number
        ----------------------------------------------------------------- 
        Get Presentation Time Limit                                   216

         00D8 H     The number 216
         0000       No data sent


        This command gets the current presentation time limit settings.



        Response
        --------
         80D8 H   The number 216+8000H 
         0002       Two data words sent
         xxxx       Presentation Time Limit (milliseconds, 0=disable)
         yyyy       HL Level Threshold (in dB HL * 100)


        The presentation time is in milliseconds. 
        The limit is activated when the presentation level (in dB HL) 
        is at or above the HL Level threshold setting. 

        Below the HL level threashold the source will be presented as 
        long as the stimulus is being presented. When the HL level is at 
        or above the HL level threashold, the source will be turned off 
        once the timeout period has expired when the presentation is 
        presented. When the Presentation is turned off, the timeout is 
        automatically reset in preperation for the next presentation 
        event.

        Setting a timeput period of zero (0) will disable the 
        presentation time limit (it will always be on as long as the 
        presentation is on). The presentation time limit is also inactive 
        if the HL level threashold is below the specified HL level.


        This command is instrument specific. Refer to the instrument 
        documentation for additional details. 

        See also: 217 - Set Presentation Time Limit














                                       46


        Command                                                    Number
        ----------------------------------------------------------------- 
        Set Presentation Time Limit                                   217

         00D9 H     The number 217
         0002       Two data words sent
         xxxx       Presentation Time Limit (milliseconds, 0=disable)
         yyyy       HL Level Threshold (in db HL * 100)


        This command sets the current presentation time limit settings.


        The presentation time is in milliseconds. 
        The limit is activated when the presentation level (in dB HL) 
        is at or above the HL Level threshold setting. 

        Below the HL level threashold the source will be presented as 
        long as the stimulus is being presented. When the HL level is at 
        or above the HL level threashold, the source will be turned off 
        once the timeout period has expired when the presentation is 
        presented. When the Presentation is turned off, the timeout is 
        automatically reset in preperation for the next presentation 
        event.

        Setting a timeout period of zero (0) will disable the 
        presentation time limit (it will always be on as long as the 
        presentation is on). The presentation time limit is also inactive 
        if the HL level threashold is below the specified HL level.


        This command is instrument specific. Refer to the instrument 
        documentation for additional details. 

        See also: 216 - Get Presentation Time Limit





















                                       47


        Command                                                    Number
        -----------------------------------------------------------------
        Set Register                                              Cmd 220

        00DC H    The number 220
        0003 H    Three data words sent
        rrrr      Register group
        nnnn      Register number 
        vvvv      Register value


        This command will set the value of the specified register number 
        in the specified register group. Each register is referenced by 
        its index number within the register group. 
        See the separate document describing register items to determine 
        the numbers available on each instrument. 

        Note: Not all instruments support commands 220 and 221.
        See the instrument specific documentation to determine if the 
        command is supported and which storage items are supported.
        If this command is not available on the instrument, an Illegal 
        command response will be given. 

        Currently on the Colt only the real time register group (0) is 
        available. The Colt real-time register number is the index into 
        the FIPP data array. (ie PBSTAT is register 0). On the Colt, the 
        set register command allows you to change registers and bit flags 
        that are read only, so use it with great care.


        See also: 221 - Get Register

























                                       48


        Command                                                    Number
        -----------------------------------------------------------------
        Get Register                                              Cmd 221

        00DD H    The number 221
        0002 H    Two data words sent
        rrrr      Register group
        nnnn      Register number 

        Response
        --------
         80DD H   The number 221+8000H 
         0002      One data word sent
         vvvv      Register value


        This command will get the value of the specified register number 
        in the specified register group. Each register is referenced by 
        its index number within the register group. 
        See the separate document describing register items to determine 
        the numbers available on each instrument. 

        Note: Not all instruments support commands 220 and 221.
        See the instrument specific documentation to determine if the 
        command is supported and which storage items are supported.
        If this command is not available on the instrument, an Illegal 
        command response will be given. 

        Currently on the Colt only the real time register group (0) is 
        available. The Colt real-time register number is the index into 
        the FIPP data array. (ie PBSTAT is register 0). On the Colt, the 
        set register command allows you to change registers and bit flags 
        that are read only, so use it with great care.


        See also: 220 - Set Register




















                                       49


        =================================================================
                       Control Panel Register Definitions
        =================================================================

        The control panel registers are formed in an array of 14, 29 or 
        32 integers (16 bits; ie two bytes each) in the following format:

          PBSTAT     [0]  ;PB switches current status            (FA1x)
          PBMISC     [1]  ;Misc status and option selection      (FA1x)

          LFREQ      [2]  ;Left channel frequency                (FA1x)
          LLEVEL     [3]  ;Left channel output level in HLspl    (FA1x)
          LSRC       [4]  ;Left input source selection           (FA1x)
          LDEST      [5]  ;Left destination selection            (FA1x)
          LSIM       [6]  ;Left HA Simulator                     (FA1x)
          LLOFFS     [7]  ;Left output level offset             (*FA1x)

          RFREQ      [8]  ;Right channel frequency               (FA1x)
          RLEVEL     [9]  ;Right channel output level in HLspl   (FA1x)
          RSRC       [10] ;Right input source selection          (FA1x)
          RDEST      [11] ;Right destination selection           (FA1x)
          RSIM       [12] ;Right HA Simulator                    (FA1x)
          RLOFFS     [13] ;Right output level offset            (*FA1x)

          OPTSEL     [14] ;Option Selection                (Colt)
          LEVINC     [15] ;Level Increment selection       (Colt)

          MONITOR    [16] ;Monitor output (headset) volume (Colt)
          TALKFWD    [17] ;Talk Forward volume             (Colt)
          TALKBACK   [18] ;Talkback volume                 (Colt)
          LEFTVOL    [19] ;Left input volume               (Colt)
          RIGHTVOL   [20] ;Right input volume              (Colt)
          LEFTVU     [21] ;Left VU meter                   (Colt)
          RIGHTVU    [22] ;Right VU Meter                  (Colt)

          TFLAGS     [23] ;Tablet status flags (R/O)       (Colt)
          CFLAGS     [24] ;Computer status flags (R/O)     (Colt)
          TESTTYPE   [25] ;Test Type                       (Colt)
          SPCHINFO   [26] ;Speech Info                     (Colt)
          SCORE      [27] ;Speech Scoring                  (Colt)
          BFLAGS     [28] ;Base Unit status flags (R/O)    (Colt)

          XFLAGS     [29] ;Control and management flags (R/O) (*Colt)
          SPARE1     [30] ;spare register                     (*Colt)
          SPARE2     [31] ;spare register                     (*Colt)











                                       50


        Notes: You should treat the control panel registers as a variable 
        length record since it may change in length depending on the 
        instrument and software version being used.
         
        The Control Panel Registers control the instrument. 
        When not under computer control, the front panel controls on the 
        audiometer set the registers to the values selected. The computer 
        can still read the registers without affecting the operation of 
        the instrument. In this fashion it is possible for an attached 
        computer to collect data without affecting the operation of the 
        audiometer.

        On the FA10/FA12, bits 7 and 15 manage computer control of the 
        audiometer. When under computer control (Bit 7 and bit 15 of 
        PBSTAT set), the User Interface of the FA10/FA12 is disconnected. 
        This allows the computer to set the Control Panel Registers 
        without interference from the user interface. The audiometer user 
        interface can be read separately at any time whether under 
        computer control or not.Reading the control panel registers when 
        under computer control will return the last register setting that 
        was sent by the computer, not the user interface settings. You 
        must use the separate read user interface command to read the 
        user interface when under computer control.

        On the Colt, the additional interfaces are available, so the 
        control bits were moved to a new XFLAGS register. 

        The FA10/FA12 used 14 real-time registers. To provide for the 
        added features of the Colt, the register set is expanded to 32 
        registers on the Colt. Four of the registers are read only. 
        You must use the Register Update Command to change them.
        Note: On very early software (V0.21 base software) the register 
        set was 29 words long. 

        On the FA10/FA12 LLOFFS and RLOFFS were used in conjuction with 
        the -2.5dB and +10dB boost controls. The values were used to 
        adjust the HL level from the HL dial setting. On the Colt, the 
        adjustment is done directly on the controls, so these registers 
        are not used on the Colt. For backward compatibility, the 
        registers are always zero on the Colt. However, the registers are 
        depricated and at some point in the future may be used for 
        something else, so ideally they should be ignored when 
        communicating with a Colt base unit.

        NOTE: Anytime invalid control panel data is sent to the 
        audiometer, the command will be ignored, and the level will be 
        immediately set to 0dB and the stimulus turned off in order to 
        prevent the possibility of a bad command causing problems. In 
        addition, if the level boost flags were enabled, they will be 
        disabled. 






                                       51


        PBSTAT:

        The PBSTAT register contains the current status of the push 
        button controls. The lower eight bits of the register contains 
        the status for the left channel. The upper eight bits of the 
        register contains the status for the right channel.

         (Left channel)                   (Right Channel)
         Bit - Definition                 Bit - Definition 
         ----------------                 ----------------
          0 - *Stimulus Active(Colt=R/O)   8 - *Stimulus Active(Colt=R/O)
          1 -  Pulse Enabled               9 -  Pulse Enabled
          2 -  Warble Enabled             10 -  Warble Enabled
          3 -  Talk Forward Enabled       11 -  Talk Forward Enabled
          4 - *Destination Reversed       12 - *Stereo/Mono Mic Input
          5 - *Patient Response (switch)  13 - *Pat Rsp (operator)
          6 - *Interlock Enabled (Colt)   14 - *Tracking Enabled (*Colt)  
          7 - *I/O control (FA1x)         15 - *I/O control (*FA1x)

        Notes:
        Bits marked "(reserved)" are reserved for future use. The 
        condition of the bit should not be relied upon. If you write to 
        the bit, you should write it as a "0". (R/O) means that the bit 
        is Read Only. It cannot be written to (any value written to it 
        will be ignored).

        *Note: On the FA10/FA12, Destination Reversed altered the 
        operation of the audiometer causing the control register to be 
        swapped internally. On the Colt it is now a flag that is used to 
        indicate that the User Interface device has swapped the channels. 
        Other than the flag being set to indicate that the Output Reverse 
        toggle is on, nothing else is done to the FIPP data.
        The left channel data is always for the left channel and the 
        right channel data is always for the right channel regardless of 
        the channel display position on the user interface.

        On the FA10, the stimulus bits 0 and 8 can be controlled directly 
        via fipp commands. On the Colt, stimulus is controlled via the 
        stimulus switch pressed flag bit in PBMISC.

        Bits 6 and 14, Interlock and Tracking are new to the Colt 
        audiometer. The bits are not used on the FA10/FA12 and are 
        normally set to zero.

        On the FA10/12 bit 12 acted the same as Bit 4 (Destination 
        Reverse). On the Colt, Bit 12 is used to select wether the 
        talk forward mic jack is a stereo jack or a mono jack. 
        When selected as stereo, the talkback mic is disconnected (the 
        talkback mic circuit is used as the second talk forward mic).
        Bit 12 = 1 = stereo talk forward mic input (talkback mic jack 
        disabled), Bit 12 = 0 = mono talk forward mic (talkback mic jack 
        is enabled). When talk forward mic jack is configured as stereo, 
        the tip is the left channel and the ring is the right channel.  
        both channels provide phantom power via a 10K resistor. 


                                       52


        On the FA10/FA12 bits 7 and 15 are used to manage computer 
        control of the audiometer. On the Colt, the control flags have 
        been moved to the XFLAGS register to provide greater control. 
        If bits 7 and 15 are set on the Colt, they will be ignored. 

        The Stimulus Active bit when on indicates that the Stimulus is 
        active (being presented). This may be the result of the primary 
        Stimulus button being pressed, or the Reverse Stimulus toggle 
        being on. When the Stimulus Active status bit is on, the stimulus 
        indicator on the audiometer user interface is on.

        *On the FA10, the stimulus active bit is controlable via the FIPP 
        interface. On the Colt the bit is read-only. (Use the Stimuluss 
        pressed bit to control the stimulus on the Colt.)

        The Pulse bit when on indicates that the stimulus will be pulsed 
        when the pure tone sound is presented, or when one of the ABLB, 
        MLB, or SISI options is selected when the pulse is enabled (if 
        the selected option is available on the instrument). For all 
        other sound sources the pulse selection will be ignored. 

        The Warble (FM) bit when on indicates that the stimulus will be 
        warbled when the pure tone sound is presented. For all other 
        sound sources the warble selection will be ignored.

        When the Talk Forward bit is on, it indicates that the talk 
        forward operation has been selected. Talk forward disables all 
        other controls except the output destination selection. The level 
        is set to 90dBHL, the Talk Forward microphone is selected as the 
        sound input source. The Talk Forward volume control knob controls 
        the actual volume level that will be used with the maximum being 
        90dBHL. If the destination selected cannot achieve 90dBHL, the 
        highest possible valid level will be used.

        Note that the Pulse, Warble, and Talk Forward values can be 
        selected separately under computer control. Since there is only a 
        single manual control button for the function of both channels 
        on the audiometer, when not under computer control, both the 
        status bits will be updated for both channels based on the 
        respective push button switch toggle on the audiometer under 
        manual operation.















                                       53


        On the FA10 the Destination Reversed causes the destination 
        channel outputs to be reversed. That is, the left channel source 
        is presented on the right channel output, and the right channel 
        source is presented on the left channel output. On the Colt 
        audiometer, the reversal is expected to be done by the User 
        interface. The Colt Left and Right channels map to the Patient's 
        Left and Right ears. The orignal purpose of this bit was to allow 
        the physical knobs on the FA10 to be redirected to the opposite 
        outputs for those who preferred a visual mapping of the knobs to 
        the associated patient ear. With a redefinable user interface, 
        the swapping is no longer required at the hardware layer.

        Note that unlike the other status bits, the Destination Reversed 
        bit affects both channels. If the Destination Reversed bit is 
        set, both channels are reversed. 

        The Patient Response bit is a copy of the Patient Response push 
        button (physical switch). It is directly updated from the current 
        status of the patient response switch.

        On the FA10 bit 13 is a copy of bit 5 and the computer cannot 
        change the patient response bits - read only.

        On the Colt, the Pat Rsp (bit 13) is a copy of the patient 
        response bit from the computer or tablet. It is sent to the base 
        unit via FIPP. This allows the tablet and computer to directly 
        communicate the status of the user display patient response 
        override button (if used).

        The (reserved) bits are not currently used. However, the value of 
        the bit should not be relied upon. The bit may be used in the 
        future. If you write to this bit, you should set it to zero or 
        the value that was previously read from the instrument. 

        On the FA10, the I/O Control bits indicate if the instrument will 
        be under computer control, or Front Panel control. These flags 
        are ignored on the Colt. See the XFLAGS register for information 
        on external control of the Colt audiometer.

        On the FA10, both bits are defined as computer control, with Bit 
        7 controlling the left channel, and Bit 15 controlling the right 
        channel. Specifically, when the bit is set, the respective 
        channel will be disconnected from the user interface and all 
        control will happen through the Control Panel Registers as set by 
        the controlling computer. The channels may be controlled 
        individually or together. If a channel is not placed under 
        computer control, the audiometer user interface will retain 
        control of the channel and the registers for that channel will be 
        updated by the user interface. Normally both bits are turned on 
        for computer control of the FA10. 






                                       54


        PBMISC:

        The PBMISC register is used for miscellaneous button status and 
        option selections. The lower eight bits of the register contains 
        the status for the left channel. The upper eight bits of the 
        register contains the status for the right channel.

         (Left channel)                  (Right Channel)
         Bit - Definition                Bit - Definition 
         ----------------                ----------------
           0 - *Test Channel               8 - *Test Channel 
           1 - *(reserved)                 9 - *(reserved)  
           2 -  (reserved)                10 -  (reserved)
           3 - *Boost ON                  11 - *Boost ON  
           4 -  Dual Freq Mode            12 - *(reserved) 
           5 -  Left Stim Reverse         13 -  Right Stim Reverse
           6 - *Left Stim Pressed         14 - *Right Stim Pressed 
           7 -  Cal Error (R/O)           15 -  Cal Error (R/O)

        Bits marked "(reserved)" are reserved for future use. The 
        condition of the bit should not be relied upon. If you write to 
        the bit, you should write it as a "0" or a copy of the previously 
        read condition. 

        * Bits marked (R/O) are Read Only. That is you can read them, but 
        the settings will be ignored if you try to write them to the 
        audiometer. 

        * Note: Bits marked with "*" have differences in the definitions 
        between the FA10 series and the Colt series. See the notes below 
        for the details. We have tried to retain as much backward 
        compatibility as we could within the bounds of the hardware 
        differences between the audiometers.

        Note: The Start button on the user interface does not have an 
        associated flag in the FIPP interface. The button is for use only 
        within the user interface to set and restore the default panel 
        control value settings or to start an automated test sequence.


















                                       55


        Colt Test/Reference Channel Definitions:
        On the Colt, bits 0 and 8 are used in conjunction with the 
        special test options to define the test and reference channels. 
        When the bit is on, it defines the test channel. The other 
        channel becomes the reference channel. Normally this bit is set 
        by the last stimulus switch that was pressed. 

        Note: It is not valid for both bits to be on at the same time. 

        On the Colt, bits 1 and 9 are reserved for future use. 
        They should be ignored for now.

        Note: prior to V0.24.3 base unit software on the Colt, the 
        test/reference channel bits were not properly configured. 
        To use this feature, you should be sure that the base unit has 
        the V0.24.3 or higher software.


        FA10/FA12 ABLB/SISI (test/reference channel) bit definitions:
        On the FA10/FA12 bits 0,1,8 and 9 are used for defining the 
        test and reference channels when using the special test options
        (ABLB, MLB and SISI).

        The ABLB/MLB and SISI bits on the FA10/FA12 work in conjunction 
        with the Option selection control. If the Option control is set 
        to Normal, these bits are ignored. If the control is set to one 
        of the test mode options, the bits are used to select the test 
        and reference channels for the selected test. The option control 
        bit is turned on when the associated option is selected and the 
        stimulus is presented. When the stimulus is removed, the option 
        bit is turned off. (Note: If the computer leaves the bit on when 
        the stimulus is removed, the option bit will be ignored. The 
        option is only active when the stimulus is presented.)

        * Only one of the ABLB/MBL or SISI bits in the PBMISC register 
        should be turned on, either the left channel bit, or the right 
        channel bit. It is not valid to turn on the bits for both 
        channels. The channel for which the bit is on becomes the test 
        channel. The other channel becomes the reference channel. 

        Note that since the computer can control the individual channel 
        frequencies, there is no difference between the ABLB and MLB 
        tests from a software standpoint. The same bit controls the 
        operation of both tests.












                                       56



        *On the FA1x series the boost bits are read only.
        You must use the separate Boost command to set the audiometer 
        above 110dB. This is done on purpose to prevent accidentally 
        triggering Boost which can potentially damage hearing if the 
        level is set to 120dB. The Boost bits are copies of the Boost 
        flags (see Set Level Boost Flags command). 

        *On the Colt, the boost bits can directly control the boost flags 
        in the base unit. While you can still use the separate set Boost 
        command, it is not required on the Colt. 

        Boost is a temporary event that is automatically set back to off 
        on any control change. If Boost is On, it will always be turned 
        off if any control on the user interface is changed other than 
        stimulus or patient response. 

        The Dual Freq bit controls whether the frequencies in the left 
        and right channels will be phase synchronous or separate 
        non-synchronous frequencies. This bit is on if the frequencies in 
        the left and right channel are not the same. It is off if the 
        internal pure tone generator is used to supply the same pure tone 
        source to both channels. 

        On the Colt, when the Dual Freq bit is on, two frequency controls 
        will be displayed. When it is off, only one frequency control is 
        displayed. In MLB mode the dual frequency controls are always 
        displayed regardless of the state of the Dual Freq bit.

        On the FA10/FA12, the Dual Freq bit is active only when the 
        frequencies in both channels are the same and the source is the 
        internal pure tone signal generator. If the frequencies are 
        different or the source is not the internal pure tone signal 
        generator, then this bit is ignored.

        Normally the audiometer will set the Dual Freq bit on when the 
        selected panel frequencies in the left and right channels do not 
        match (such as in the MLB test or if Dual Frequency mode is 
        selected). Otherwise it will set the bit to off.

















                                       57


        *On the FA10/FA12, the Left and Right Stim pressed bits are read 
        only copies of the stimulus switch state for the left and right 
        channels. This is provided in case you need to know the condition 
        of the stimulus switch. If the stimulus state is on, but the 
        switch itself is off, you know that reverse stimulus is on. On 
        the FA10/FA12 series audiometers these bits are read only. They 
        do not control the stimulus. Use the PBSTAT stimulus active bits 
        0 and 8 to control the stimulus operation.

        *On the Colt, the stimulus switch pressed bits are similar to the 
        FA10 bit definition except that the bits are read/write instead 
        of read/only. These bits are used to control the stimulus on the 
        Colt audiometer via the FIPP interface. (The stimulus activity 
        bits 0 and 8 are read only on the Colt.)

        The Left and Right Stimulus Reverse bits are copies of the 
        stimulus reverse switch toggles. When on, they reverse the 
        operation of the stimulus switches from being normally off to 
        being normally on. You can use this bit to control the toggles.

        The Cal Error flags Bit7 and Bit15 of PBMISC indicates whether 
        the audiometer is operating in a calibrated mode. If the outputs 
        being generated are not calibrated, the associated channel bit 
        will be on. 

        Normally this occurs if the Audiometer has not been calibrated, 
        or if the audiometer is configured such that the output signal 
        cannot be presented is a calibrated manner (such as over-range).




























                                       58


        LFREQ, RFREQ:

        The LFREQ and RFREQ registers contain an integer value indicating 
        the frequency used by the audiometer. The register can take on a 
        value between 125 and 8000 (or 12000 on the Colt)indicating the 
        frequency in Hertz. (On a high frequency audiometer, this may 
        extend to 16000Hz.)

        When being commanded by the computer, the frequency is adjustable 
        in one Hertz increments in either channel. The frequencies may be 
        different in either channel if so desired. If the frequencies are 
        the same in both channels and pure tone is the selected source 
        output, the signals will be phase synchronous.

        Attempting to set a frequency to a value outside the allowed 
        range will cause a command error to occur, the entire command 
        will be ignored and the levels will be set to zero. If a 
        frequency is selected that is not possible to generate, the 
        audiometer will select the next closest available frequency.

        When not under computer control, both the left and right 
        frequency registers will reflect the current setting of the 
        frequency selection on the audiometer user interface. 

        NOTE: As a side effect, the Get Control Panel Registers command 
        will return the exact frequency (+-1Hz) that the audiometer is 
        actually operating at for the channel. The Get Patient Response 
        Latched Control Panel Registers command and Get Buffered Control 
        Panel Registers commands will return the frequency value that was 
        commanded in the Set Control Panel Registers command even if it 
        is not an exact frequency. (There is no conversion, the register 
        is just returned as it was sent.)  
























                                       59


        LLEVEL, RLEVEL:

        The LLEVEL and RLEVEL registers contain an integer value 
        indicating the HL level used by the audiometer. The value is 
        given in dB*100. The register can take on a value between -2000 
        (-20dBHL) and 11000 (110dBHL). While you can set the value to as 
        much as 110dbHL, the actual maximum level available in the 
        instrument may be somewhat less. The actual maximum level will 
        depend on the calibration offset level used with the currently 
        selected transducer. If the transducer cannot be set to the 
        specified level, a command status error will be set. 

        With the +10dB boost option, you can set the level above 
        110.0dBHL (up to 120dBHL maximum), but only by enabling the level 
        boost flag just prior to sending the Set Control Panel Registers 
        command (see Set Level Boost flags). This is a safety feature to 
        prevent accidentally generating an excessive sound level. 

        This level value will directly reflect the dBHL output level for 
        the selected transducer when the audiometer has been properly 
        calibrated. (Note: the LLOFFS and/or RLOFFS values can be used to 
        offset the selected level value.)

        When under computer control, the output level is adjustable in 
        0.1dB increments. (You can send data with a resolution of 0.01dB 
        increments, but any resolution below 0.1dB will be ignored. 
        (Values are truncated, not rounded.) The 0.01db resolution is 
        provided to maintain compatibility to other Fonix instruments.

        Attempting to set a level to a value outside the allowed range 
        will cause a command error to occur, the entire command will be 
        ignored and the levels will be set to zero. You should use the 
        Get Command Status command after setting the registers to 
        determine if the values were valid and the command was taken. 

        When not under computer control, the level registers will reflect 
        the level on the Hearing Level controls of the audiometer.

        In uncalibrated mode, the level register only refers to the 
        attenuator setting inside the audiometer. It does not reflect the 
        true sound output of the instrument. The register can take on a 
        value between -2000 (-20dB) and 13990 (139.9dB). Setting the 
        register to 139.9dB does not mean that the audiometer has been 
        set to 139.9dBHL when in uncalibrated mode. It only means that 
        the attenuators have been set to the internal 139.9dB position. 
        This has no relationship to the actual sound output level. Actual 
        sound output level will depend on the transducer being used, the 
        model of the instrument, and the minor electrical differences 
        from instrument to instrument. Also, you must still use the Level 
        Boost command to be able to go above the 110.0dB level limit.






                                       60


        LSRC, RSRC:

        The LSRC and RSRC registers reflect the input source being used.
        The register will contain a number between 0 and 7 indicating the 
        selected input mode. 

             0 = Tone
             1 = Microphone
             2 = External (channel 1)
             3 = Other External (channel 2)
             4 = (reserved)
             5 = White Noise
             6 = Speech Noise     
             7 = NarrowBand Noise 
             8 = Internal File #1
             9 = Internal File #2

        Attempting to select an input mode outside the allowed range will 
        cause a command error to occur, the entire command will be 
        ignored, and the levels will be set to zero.

        When not under computer control, the "Input" switch on the 
        audiometer will control the input source value in the Control 
        Panel Register.

        Note: The FA10/FA12 does not have selections 8 and 9.



        LDEST, RDEST:

        The LDEST and RDEST registers reflect the output destination 
        being used. The register will contain a number between 0 and 6 
        indicating the selected output. 

             0 = None           (off)
             1 = Phone          (output goes to std earphone)
             2 = Bone           (output goes to bone vibrator)
             3 = Speaker        (output goes to speaker)
             4 = Other channel  (output goes to other channel)
             5 = Insert         (output goes to insert earphone)
             6 = Line           (output goes to line output)
             7 = HF Phone       (output goes to HF Phone)

        Attempting to select an output outside the allowed range will 
        cause a command error to occur, the entire command will be 
        ignored, and the levels will be set to zero.

        When not under computer control, the "Output" selector on the 
        audiometer user interface will control the output destination 
        value in the Control Panel Register.

        Note: The FA10/FA12 does not have selections 5, 6 and 7.



                                       61


        OPTION:

        The OPTION register reflects the option selection being used. 

        The FA10/FA12 and the Colt have different mappings for the Option 
        tests. This is because the Colt uses a separate control for the 
        Options rather than mapping them on top of the HA Simulator 
        control like the FA10/FA12 does.

             FA10/FA12                    Colt
             0 = Normal (Off)             0 = Normal (Off)
          1..4 = (reserved)               1 = ABLB
             5 = ABLB                     2 = MLB
             6 = MLB                      3 = SISI
             7 = SISI                     4 = DLI

        The Option selection controls the enabling of the ABLB/MLB/SISI 
        tests. This is used in conjunction with the PBMISC control bits 
        to manage the tests. The PBMISC bits are used to indicate that 
        the option test is in operation. The Option setting is only used 
        to provide notice that the option has been selected. It does not 
        actually control the option test.

        If the option selector is set to Normal, the associated PBMISC 
        control bits will be ignored. Otherwise the indicated test mode 
        will be selected.

        Only one of the ABLB/MBL or SISI bits in the PBMISC register 
        should be turned on, either the left channel bit, or the right 
        channel bit. It is not valid to turn on the bits for both 
        channels. The channel for which the bit is on becomes the test 
        channel. The other channel becomes the reference channel. 

        Note that since the computer can control the individual channel 
        frequencies, there is no difference between the ABLB and MLB 
        tests from a software standpoint. The same bit controls the 
        operation of both tests.

        The (reserved) selections are reserved future use. 
        (They are the simulator selections on the FA10.) 

        LSIM, RSIM:

        The LSIM and RSIM word is the left and right hearing aid 
        and loss simulator selection.

        FA10/FA12 values:
          0 = OFF
          1 = 6dB 
          2 = 12dB
          3 = 18dB
          4 = HFE




                                       62


        LLOFFS, RLOFFS:

        The LLOFFS and RLOFFS registers are only used by the FA10/FA12 
        audiometers. On the Colt, the register is set to zero for 
        backwards compatibility. If you set the register to any other 
        value, it is ignored. 

        FA10/FA12 operation:
        The LLOFFS and RLOFFS registers contain an integer value 
        indicating the offset from the HL level used by the audiometer. 
        The value is given in dB*100. The register can take on a value 
        between -13990 (-139.9dB) and 13990 (139.9dB). Normally the 
        offset value will be at zero indicating that the LLEVEL and 
        RLEVEL registers contain the exact output level to be used. If 
        the offset level register contains a value other than zero, it 
        will be added to the base level value to determine the actual 
        output level that will be used. 

        The total of the base level and offset level registers will 
        determine the actual output level of the audiometer. The combined 
        values will reflect the dBHL output level for the selected 
        transducer when the audiometer has been properly calibrated. 

        When under computer control, the offset level is adjustable in 
        0.1dB increments. (You can send data with a resolution of 0.01dB 
        increments, but any resolution below 0.1dB will be ignored. 
        (Values are truncated, not rounded.) The 0.01db resolution is 
        provided to maintain compatibility to other Fonix instruments.

        The combined values in both the base level and the offset level 
        cannot exceed the allowed output range of the audiometer (see 
        LLEVEL/RLEVEL description above). Attempting to set the combined 
        level to a value outside the allowed range will cause a command 
        error to occur, the entire command will be ignored, and the 
        levels will be set to zero.


        **Warning** To validate a level, the command must be processed 
        first. Because of this, the command status result should be 
        tested after sending a new level command to insure that the 
        command was correctly processed. The normal reason for a failure 
        is if the level requested caused the output to exceed the valid 
        calibration level for the output device selected. 

        Note: An alternate way of insuring that the output level selected 
        is valid when in calibration mode is to get the Calibration 
        status flags. (See the Get Calibration Flags command and the Get 
        System Status Registers command.) But, you should always get the 
        command status to clear any pending error that might result and 
        to test for command validity.






                                       63


        LEVINC: (Colt)
        The LEVINC value is a copy of the Level increment control.
        The value can be 1, 2 or 5dB (in db * 100 : eg 1db = 100). 
        (This selection is not available on the FA10.)


        MONITOR: (Colt)
        The Monitor value is a copy of the Stereo Monitor volume control.
        This value can be between -20dB and +20dB. The center position of 
        the control is 0dB. The monitor headphone output is calibrated to 
        be 70dB HL at 1KHz when the volume control is at 0dB.
        The value is provided in DB*100.

        TALKFWD: (Colt)
        The TalkFwd value is a copy of the Talk Forward volume control.
        This value can be between -20dB and +20dB. The center position of 
        the control is 0dB. The talk forward output is calibrated to be 
        70dB HL at 1KHz when the volume control is at 0dB.
        The value is provided in DB*100.

        TALKBACK: (Colt)
        The Talkback value is a copy of the Talkback volume control.
        This value can be between -20dB and +20dB. The center position of 
        the control is 0dB. The talkback output is calibrated to be 70dB 
        HL at 1KHz when the volume control is at 0dB.
        The value is provided in DB*100.

        LEFTVOL:  (Colt)
        RIGHTVOL: (Colt)
        The Left and Right volume value is a copy of the left and right 
        input volume controls. 
        This value can be between -20dB and +20dB. The center position of 
        the control is 0dB. The value is provided in DB*100.


        LEFTVU:  (Colt) (R/O)
        RIGHTVU: (Colt) (R/O)
        The Left and Right VU meter value is a copy of the left and right 
        VU meters. These two registers are read only values provided by 
        the base unit when in speech mode. The value provided in DB*100. 
















                                       64


        TFLAGS:  (Colt)

        The TFLAGS register is used to provide control flags for the 
        Bluetooth (tablet - AKA user interface) connected to the Colt 
        system. 
        See the Colt document for detailed description of the flags.


        CFLAGS:  (Colt)

        The CFLAGS register is used to provide control flags for the 
        USB port (master database computer) connected to the Colt system. 

        See the Colt document for detailed description of the flags.

        Note: On the Colt there are two interfaces, a Bluetooth and a 
        USB. By convention, the user interface (Tablet) is connected via 
        the Bluetooth interface and the master database computer is 
        connected via the USB interface. However, which interface/device 
        is the master computer and which is the tablet/user interface 
        device is defined by convention externally from the Colt. Either 
        interface can be used as either the user interface or as the 
        master database computer interface. The TFLAGS and CFLAGS 
        registers are controlled by the associated external device 
        regardless of which interface the external device is using.

        TESTTYPE:  (Colt)
        The lower byte of the Test Type register indicates the test  type 
        selection. 

             0 = Unknown (Normal/Off)
             1 = HTL
             2 = MCL 
             3 = UCL
             4 = SRT
             5 = SDS

        The upper byte is used for bit flags to indicate operating states 
        relative to  the test. 

            BIT8 : on = Aided, off = Unaided


        The (reserved) selections are reserved future use. 

        SPCHINFO:  (Colt)

          MSB : file/record
          LSB : track

        The SPCHINFO register provides infomation on the speech record 
        and track being played. The upper byte indicates the file/record  
        being played, and the lower byte indicates the track.



                                       65


        SCORE:  (Colt)

          MSB : wrong
          LSB : correct

        The SCORE register provides information on the speech scoring.
        The upper byte indicates the wrong count. The lower byte 
        indicates the correct count. The information is for the current 
        ear under test (both ears if both are being tested).


        BFLAGS:  (Colt)

        The BFLAGS register is used to provide control flags for the 
        base unit of the Colt system. 
        See the Colt document for detailed description of the flags.

           (Left channel)                   (Right Channel)
           Bit - Definition                 Bit - Definition 
           ----------------                 ----------------
             0 - Output Active              8 - Output Active 
             1 - Front Panel Contols (R/O)
             7 - Cal Error (R/O)            15 - Cal Error (R/O)

        Output Active:
        When the flag is on, it indicates that the source output is 
        active. For normal Tone tests, this is when the stimulus is being 
        presented at the output. For test sequences such as SISI, it is 
        used to indicate the level increment portion of the test 
        sequence.

        Cal Error: 
        This flag is a copy of the same bit in the PBMISC register.

        Information bits:
        Bit 1 is used to indicate if the Colt has front panel controls 
        available. If the flag is on, it indicates that the base unit has 
        the front panel control option installed. 

        Note: see the XFLAGS for how to disable the controls if needed.
















                                       66


        XFLAGS:  (*Colt)

        The XFLAGS register is used to provide operational control of the 
        audiometer. Currently it is only used to define which interface 
        has control of the audiometer. 

        XFLAG I/O Control disable bits
        The I/O Control disable bits are used to disable specific I/O 
        interfaces. The default condition is multi-master control (all 
        interfaces enabled - all three bits off). 

           Bit - Definition                 
           ----------------                 
             0 - Tablet (Bluetooth) disabled
             1 - Computer (USB) disabled
             2 - Base Unit controls disabled

        If all bits are off (0), the Colt operates in multi-master mode. 
        Any interface can control the operation of the audiometer. 
        It is up to the attached devices to manage any contention over 
        the control of the audiometer.

        If bit 0 is on, the tablet (Bluetooth) interface is disabled. 

        If bit 1 is on, the computer (USB) interface is disabled.

        If bit 2 is on, the Base unit front panel controls are disabled.

        Note: the definition of the above flags is by convention. 
        Except for the base unit flag (bit 2), the flags do not 
        physically disable any thing it is up to the attached device to 
        respect the flag. Any device may re-assert its flag to regain 
        control of the audiometer. 


        Any changes on the base unit will always be reflected to the 
        tablet (Bluetooth) and computer (USB) interfaces regardless of 
        the control bit settings. Reading the control registers will 
        always show the current state of the base unit in the registers.

        If a device's control bit flag is set (disabled), it is up to the 
        device to respect the flag and not send any real-time register 
        write commands (0x1002). 













                                       67


        On the tablet, the display will always reflect the base unit 
        registers. If the user tries to change a control on the tablet 
        when in read-only mode (ie under computer control only), the 
        tablet control state will be returned to the value within the 
        base unit.  To help the user recognize this situation, the 
        display background of the tablet will use a different color to 
        identify that the controls are locked. 

        Any changes on the base unit will always be reflected to the 
        tablet (Bluetooth) and computer (USB) interfaces regardless of 
        the control bit settings. That is reading the control registers 
        will show the current state of the base unit in the registers.

        However if the I/O interface is set to read/only by one of the 
        control bits, any real-time register writes (0x1002) to the base 
        unit should not be done. It is up to the attached I/O device to 
        manage the results of this action within it's own program. It is 
        up to the computer or tablet to respect the flag states by 
        disabling it's own FIPP register write command (0x1002) if 
        required.


        Note: This register was added to the real-time register set 
        starting with Colt Base unit software 0.24.0



        SPARE1:  (Colt)
        SPARE2:  (Colt)
        Two additional spare registers have been reserved for future use. 
        Currently they are set to zero and any changes made to them will 
        be ignored. 
























                                       68



                           Control Register Commands

        At this point, there are two commands which can read control 
        register information, and one command to set the control register 
        information. One of the read commands uses buffers to store the 
        data so that it will not be lost should the computer not ask for 
        it in time. An additional command can read the user interface 
        registers, and another uses a buffer to store the user interface 
        data so that it won't be lost. 

        Get Control Registers Command:

        This command is just a snapshot of the control registers at the 
        time the command is given. If you just need to know the condition 
        of the control registers and don't need to worry about possibly 
        missing a change condition, you can use this command to read the 
        condition of the audiometer. It is the simplest approach. There 
        are three bit flags in the status flags which indicate that a 
        change has occurred, and whether the change was in the left or 
        right channel. The status flags are set when the change occurs, 
        and they are cleared when this command is called. When not under 
        computer control this will return the same information as the Get 
        User Interface registers command.

        Set Control Registers Command:

        This command is the opposite of the Get Control Registers 
        command. One aspect of this command is that the Computer control 
        bits in the PBstat register must be turned on, or the command 
        will be ignored. No error will occur, but unless the computer 
        control bit is on, the manual user interface controls will 
        immediately overwrite the computer control command that was 
        given. No control flags are affected by this command.

        Get Patient Response Latched Control Registers:

        This command will read the patient response latch buffer. The 
        Patient Response Latch buffer stores data anytime the patient 
        response switch is pressed at the same time as a stimulus switch 
        is pressed. See the buffer read directions below on how the 
        buffer function works. This command works in conjunction with the 
        Get Latch Counter command.

        Get User Interface (Panel) Registers Command:

        This command is just a snapshot of the user interface at the time 
        the command is given. If you just need to know the condition of 
        the user interface and don't need to worry about possibly missing 
        a change condition, you can use this command to read the 
        condition of the audiometer front panel. 





                                       69


        Get Buffered User (Panel) Interface Registers Command:

        This command will read the buffered user interface data. The 
        buffered user interface data will be stored in the data buffer 
        anytime the user interface changes condition. Note that this 
        includes switch up and switch down conditions, so this buffer can 
        fill up rapidly. See the buffer read directions below on how the 
        buffer function works. This command works in conjunction with the 
        Get Buffered Panel Counter command.

        Flushing the Buffers:

        There are two commands to flush the control and panel buffers. 
        Do Buffered Panel Flush and Do Latched Control Flush. These 
        commands reset the buffer count to zero and clear any error 
        flags. Any data in the transfer buffer is also cleared. 


        Panel (User Interface) Buffer Operation:

        Each time the read buffer command is given (buffered panel, or 
        latched control), it will read the oldest data from the 
        appropriate buffer. The data must be read in a sequence of 
        commands. Specifically, the buffer counter must be read first, 
        followed by reading the buffer data. When you read the buffer 
        counter, it copies the next available data packet into the output 
        register for reading. Once the data packet has been read, the 
        next call to get the counter information will discard the data 
        that was read and get the next available (oldest) data. 
             
        If the data has not yet been read, reading the counter will not 
        discard it. You must do a get count followed by a latch read in 
        order to sequence the buffers. Repeated calls to the counter will 
        return the same number if no calls to the latch are done, and 
        repeated calls to the latch will return the same data if no calls 
        to the counter are done.

        There is a maximum of 32 packets that can be saved in the 
        buffers. If more than 32 packets are attempted to be saved, an 
        overflow flag will be set in the index register (high bit (15) 
        will be set on). Data will continue to be collected, but the 
        oldest data will be lost as it will be overwritten with the newer 
        data packets as they are latched into the buffer. The overflow 
        flag is cleared when the buffer count is reduced to below 16. 
        Note that there is a possibility that the maximum number of 
        packets that can be saved in the buffer may increase in time if 
        more memory becomes available. Thus you should use the overflow 
        flag as an error indicator rather than the buffer index. 

        If an overflow occurs, the oldest data will be overwritten with 
        the newer data. Thus a maximum of 32 data packets can be queued 
        up waiting to be read. If the high bit is set, it means that you 
        have missed some data. 



                                       70


        Normally you should read the panel information as quickly as you 
        can. The Buffered panel data in particular can queue up very 
        rapidly since each change in the panel condition will cause that 
        change to be stored in the buffer. 

        If you read the data buffer without first reading the counter, 
        you will get the last data that was saved as a result of the 
        previous counter read. You can compare the previous counter value 
        you read to the buffer index passed back in the data packet to 
        verify if the two match up properly. If there has been no counter 
        read done since power up before you read the data latch, the data 
        returned will contain all zeros. 

        When all of the data in the buffer has been read, the counter 
        will be set to zero. If you read the data after the counter is at 
        zero, you will get a copy of the last data that was stored in the 
        data buffer. 







































                                       71


        =================================================================

                       System Status Register Definitions

        The system status register information is returned by the Get 
        System Status Registers command. There are eight registers that 
        are returned as listed below. 

            Register  Index  Description
            PBSTAT    [0]    ;copy of control PBstat register
            PBMISC    [1]    ;copy of control PBmisc register
            MSCFLG    [2]    ;misc system control flags
            CALFLG    [3]    ;calibration flags
            COMFLG    [4]    ;communication status flags
            STSPARE1  [5]    ;spare1 status flags
            STSPARE2  [6]    ;spare2 status flags
            STSPARE3  [7]    ;spare3 status flags

        These registers are a compilation of the various status flags in 
        the audiometer that might be of interest to a controlling 
        program. They are collected in one group to make it easy to 
        obtain the information all at once. 


        PBSTAT, PBMISC:

        These are simply a copy of the control panel registers by the 
        same name. They are included here mainly to provide a one time 
        update for the computer program that might need the information. 
        See the definition for the PB registers in the Control Panel 
        Register description in the previous section.


        CALFLG:

        This is a copy of the calibration status flags. They are included 
        here mainly to provide a one time update for the computer program 
        that might need the information. See the definition for the 
        calibration status register in the description in the Calibration 
        Flags Response definition.


        STSPARE1, STSPARE2, STSPARE3:

        These are spare flags which have not yet been defined. The 
        register is set aside for future expansion as needed. Currently 
        the values are set to zero, but this should not be relied on 
        since a real value may be returned in the future. 








                                       72


        MSCFLG: 

        These are various status flags in the audiometer that have been 
        compiled into one word. 

             Bit 0  = <reserved>
             Bit 1  = <reserved>
             Bit 2  = NZ=left chan in SPL cal;  Z=left chan in HTL cal
             Bit 3  = NZ=right chan in SPL cal; Z=right chan in HTL cal
             Bit 4  = NZ=left chan mode is invalid (cal=0)
             Bit 5  = NZ=right chan mode is invalid (cal=0)
             Bit 6  = NZ=left cal limit exceeded (>20dB HL)
             Bit 7  = NZ=right cal limit exceeded (>20dB HL)
             Bit 8  = NZ=left channel is active (sound is on)
             Bit 9  = NZ=right channel is active (sound is on)
             Bit 10 = left  chan sel: NZ=noise; Z=tone
             Bit 11 = right chan sel: NZ=noise; Z=tone
             Bit 12 = NZ=left chan is speech;  Z=noise/tone
             Bit 13 = NZ=right chan is speech; Z=noise/tone
             Bit 14 = NZ=left chan is changing;  Z=left chan is stable
             Bit 15 = NZ=right chan is changing; Z=right chan is stable


        Bits 0 and 1 are reserved for future use.

        Bits 2 and 3 are for internal use they indicate when the 
        audiometer is operating in SPL or HTL calibration mode.

        Of special note are bits 4 and 5 which indicate when a mode is 
        invalid (caused by the calibration value for that mode being set 
        to zero). There is no easy way for the audiometer to know ahead 
        of time if a mode has been disabled when it receives a panel 
        command from the computer. Thus the audiometer will accept the 
        panel command and place the audiometer into the disabled mode 
        just as if the panel switches had been set to that position.
        (Remember that the computer talks to the audiometer just as if it 
        were a separate external user interface.) The only way to know if 
        this has happened is to either know what the invalid modes are at 
        the computer and not send commands which would place the 
        audiometer in those modes, or you can use bits 4 and 5 to see if 
        the audiometer has been placed into such a mode.

        Bits 6 and 7 indicate when the calibration limit has been 
        exceeded this happens when the calibration table value exceeds 
        the default calibration value by 20dB. It is presumed that this 
        is an error condition, and the channel is disabled until the 
        calibration for the selected position is corrected (reduce the 
        calibration value). A calibration over limit is indicated by the 
        error light flashing slowly (about 1/4 second rate).







                                       73


        Bits 8 and 9 indicate if the audiometer sound output is active. 
        A non-zero means that the audiometer channel is active 
        (presenting a signal). A zero means that the sound is currently 
        off. Note that the sound can go on or off for many reasons 
        besides just the stimulus switch. Changing frequency or mode 
        switches, or the pulse button can cause the sound to be turned 
        off if it is on. This is primarily used for information purposes 
        it should not be used in place of the stimulus switch setting to 
        determine if the audiometer is being told to present a sound.

        Bits 10,11,12,13 indicate the configuration of the audiometer 
        channel, whether it is presenting tone, noise, or speech.
        Do not use these flags to decide what mode the audiometer is in. 
        Use the appropriate mode switch settings to determine that. These 
        flags are provided for informational purposes only.  

        Bits 14 and 15 indicate the current state of the audiometer sound 
        source. A NZ value means that the sound source is in the process 
        of being changed and is unstable. A Z value indicates that the 
        change is complete and the sound source is now stable. (Note that 
        this is regardless of the stimulus condition, it only indicates 
        that the sound source is being changed, not whether the stimulus 
        is being presented or not.)

































                                       74


        COMFLG:

        These are the communication status control flags. These are used 
        in conjunction with the communication operations to determine the 
        command state of the audiometer.

             Bit 0 = NZ=previous cmd error, Z=no prev cmd error
             Bit 1 = NZ=left chan com port cmd failure
             Bit 2 = NZ=right chan com port cmd failure
             Bit 3 = NZ=cmd status has been read via com port
                        (next non-status cmd will clear error flag)
             Bit 4 = <reserved>  |<----------
             Bit 5 = <reserved>  |< for internal use only
             Bit 6 = <reserved>  |<----------
             Bit 7 = <reserved - always 1)
             Bit 8 = NZ=left control panel switches were changed
                      Z=no left control panel switches changed 
             Bit 9 = NZ=right control panel switches were changed
                      Z=no right control panel switches changed 
             Bit 10 = NZ=left level boost enabled
             Bit 11 = NZ=right level boost enabled
             Bit 12 = <reserved - always 0>
             Bit 13 = <reserved - always 0>
             Bit 14 = <reserved - always 0>
             Bit 15 = NZ=one or more panel switches were changed
                      Z=no switches changed 

        Bit 0 is the primary flag of interest. This is a copy of the 
        flag returned by Get Command Status. Note that reading the flag 
        here does not clear it. You must call Get Command Status to clear 
        the error flag. This flag is set whenever an error is encountered 
        which cannot be properly processed, such as trying to set the 
        level to an invalid value. It is cleared with the Get Command 
        Status command followed by any other command. The following 
        command (other than Get Command Status) clears the error flag at 
        the beginning of the command process so that any error within the 
        command will still be properly detected.

        Bits 1 and 2 indicate that a failure has occurred in the 
        audiometer as the result of a FIPP command. It generally means 
        that the command resulted in the audiometer to go out of 
        calibration as a result of the command. The most likely cause 
        being that the level exceeded the ability of the audiometer to 
        provide the selected level.

        Bit 3 is used in connection with bit 0. It is set when ever the 
        status command has been called and the error flag was set. 
        Internally this is used to determine if the command error flag 
        needs to be reset at the start of a command process. It is 
        cleared at the same time that bit 0 is cleared.






                                       75


        Bits 4- are reserved. These bits are reserved for internal use 
        and should not be relied on to be at any specific value. They may 
        be on or off at any time. 

        Bit 7 is reserved and will always be on (1).

        Bits 8 and 9 indicate if one or more panel switches (real or 
        simulated) has changed. These bits are set on when a setting 
        which affects the operation of the associated channel is changed. 
        If the audiometer is under manual control it will be set by the 
        physical panel switches. If it is under computer control the 
        flags are set by the computer changing one of the operating 
        modes. Note that if the computer sends the same Set Panel 
        Register command over and over, only the first one has an effect. 
        All others will update internal registers, but the operation of 
        the audiometer is unaffected, and the mode change bits will be 
        unaffected.

        The mode change bits are only cleared when the Get Control Panel 
        Registers command (1) is performed. 

        Bits 10 and 11 indicate the current condition of the level boost 
        enable flags. Note that like Get Command Status, this command to 
        read the system status registers will not clear the boost flags.

        Bits 12-14 are reserved and will always be zero.

        Bit 15 indicates if any physical switch on the audiometer has 
        been changed. This can be used to determine if the keyboard 
        should be read to pick up the new keyboard switch data. 
        This bit can be cleared by two different commands. Get Control 
        Panel Registers, or Get Keyboard Input Register Data.
























                                       76


                            Calibration Table Format

        There are separate calibration tables for each ear and each 
        transducer. Internally the calibration is stored in a 
        non-volatile storage device (EEPROM). 

        Externally the calibration data is accessable in a per transducer 
        format by specifying the channel (ear) and either using the 
        currently selected transducer as the reference (command 4108 or 
        4109), or specifying the desired transducer calibration you want 
        to access (command 111 or 199). 


        The structure for the device calibration is as follows:

        typedef struct {
          cal_tCalStamp CalStamp; //58 bytes: calibration stamp
          cal_tCalList Freq;      //44 bytes: calibration frequency list 
          cal_tCalData Cal;       //178 bytes: calibration offset (db*100)
          cal_tCalData RetSpl;    //178 bytes: RetSpl data (db*100)
          cal_tCalData Maximum;   //178 bytes: maximum HL output (db*100)
          cal_tCalData Spare1;    //178 bytes: spare data <reserved>
          cal_tCalData Spare2;    //178 bytes: spare data <reserved>
        }cal_tDevData; //992 bytes

        This structure is returned when read via the FIPP interface and 
        is the structure to be used when setting the calibration via the 
        FIPP interface. 

        Note: You do not have to use this structure to perform 
        calibration. There is an alternative simpler method using command 
        144 which allows changing the currently active transducer 
        calibration directly. The primary purpose of the command to 
        transfer the entire calibration data for the transdcuer is to 
        allow reading the data in a production enviornment, or to restore 
        the data from an external backup.


        The calibration data for each transducer consists of the 
        following: 

          Calibration Stamp       : Who and When calibrated transducer
          Calibration Frequencies : List of calibration frequencies (Hz)
          Calibration Offset      : Calibration data array (dB*100)
          Calibration RetSpl      : RetSpl data array (dB*100)
          Calibration Maximum HL  : Maximum allowed HL settings (db*100)
          Calibration Spare       : <reserved for future use>









                                       77


        Calibration Stamp:

        The Calibration Stamp consists of the follow data structure:
        typedef struct {
          tPackedCalDate Date; //4 bytes
          INT16 IntStatus;     //2 bytes
          INT16 ExtStatus;     //2 bytes
          INT16 DeviceID;      //2 bytes
          char Device[16];     //16 bytes
          char SerNumber[16];  //16 bytes
          char CalByWho[16];   //16 bytes
        }cal_tCalStamp; //54 bytes

        The Calibration Stamp date is the standard Frye packed 
        calibration time stamp. This packs the cal time stamp variable 
        down to a DWORD "dd:ee:yyy:m"
         where: "yyy" = year, "m"=month, "dd"=day, "ee"=expire

        The expiration is in months from the calibratin date. 
        An expiration of 0 means there is no expiration. An expiration of 
        255 means the has not yet been a calibration performed.

        The DeviceID defines what device the calibration is for. 
        Currently the following devices are defined:

          DEV_UNKNOWN  = 0
          DEV_TDH39    = 1
          DEV_ER3      = 2
          DEV_B71      = 3
          DEV_SPEAKER  = 4
          DEV_LINE_OUT = 5
          DEV_TDH50    = 6
          DEV_HDA200   = 7

        The Device is a 15 character ASCII text string that describes 
        the transducer. It can contain any ASCII alphanumeric characters.

        The Serial Number is the serial number of the transducer. This is 
        a null terminated 15 character maximum ASCII text string. It can 
        contain any ASCII alphanumeric characters.

        The CalByWho is a string specifying who perfromed the 
        calibration for the transdcuer. This is a null terminated 15 
        character maximum ASCII text string. It can contain any ASCII 
        alphanumeric characters.











                                       78


        Calibration Frequencies:

        The Frequencies is a list of the frequencies used to calibrate 
        the transducer. This list can be up to 16 frequencies long. 

        The data structure for the frequencies list is as follows:

        #define CAL_NUM_FREQ 21
        typedef INT16 cal_tCalArray[CAL_NUM_FREQ];  //42 bytes
        typedef struct {
          INT16 Size;         //2 bytes
          cal_tCalArray Data; //42 bytes
        }cal_tCalList;        //44 bytes

        The first entry specifies the number of frequencies in the list.
        The remaining Data is the the list of frequencies in Hertz. 
        The list must be progressive (ie listed from low frequency to 
        high frequency). The same frequency list format should be used 
        for all transducers. The structure is always 44 bytes long 
        (2 bytes for size, 42 bytes for the frequencies). Unused 
        frequencies should be set to 0x8000. 


        cal_tCalData:

        The calibration Offset, Maximum and Spare structures are used to 
        define the calibration information for each transducer. The 
        calibration data structure is as follows:

        typedef struct {
          cal_tCalArray Tone;   //42 bytes
          cal_tCalArray NBN;    //42 bytes
          cal_tCalArray Speech; //42 bytes
          cal_tCalArray Spare;  //42 bytes
          cal_tCalMisc Misc;    //10 bytes
        }cal_tCalData;  //178 bytes

        The Tone, NBN, Speech and Spare arrays are an array of entries 
        that match the frequency list data array.  (ie the first entry in 
        the calibration array will be the offset correction for the first 
        frequency in the frequency list data array.) 
        The Misc values are separate single entry calibration values that 
        are not frequency related. 













                                       79


        Calibration Offset: 

        The calibration offset is an array of corrections that are 
        applied to the transducer to achieve the desired SPL output at 
        each frequency. The entries in the calibration offset array must 
        match the frequency list data array. (ie the first entry in the 
        calibration array will be the offset correction for the first 
        frequency in the frequency list data array.) 

        Positive values in the calibration offset array will increase the 
        SPL output. Negative values will decrease the SPL output. The 
        values are 16 bit integers given as dB*100. 

        Setting a calibration offset to NO_CAL (Hex:0x8001, Dec:-32767) 
        causes that frequency to be disabled for the transducer.

        The calibration is relative to HL+RETPL (target SPL).


        Calibration Maximum HL:

        The calibration maximum HL array specifies the maximum HL output 
        to which the transducer can be set. Like the calibration offset 
        array, the format must match the frequency data array. 

        The values are 16 bit integers given as dB*100. The values are 
        not SPL, but rather the maximum allowed HL setting. 

        Setting a calibration maximum HL to NO_CAL (Hex:0x8001, Dec:-32767) 
        causes that frequency to be disabled for the transducer.


























                                       80


        Calibration Spare:

        The Spare arrays are reserved for future use. 
        The values are normally returned as zeros. Even though the array 
        is not used, the data is always present in the returned data 
        structure and must be returned as provided when setting the 
        transducer data with command 199.

        Calibration Misc:

        The Misc calibration values are separate single entry calibration 
        values that are not frequency related. 
        The Misc structure is as follows:

        typedef struct {
          INT16 WhiteNoise;
          INT16 SpeechNoise;
          INT16 ExtMicFile;
          INT16 Spare1;
          INT16 Spare2;
        }cal_tCalMisc; //10 bytes

        The Misc calibration offset is the correction that is applied to 
        the transducer to achieve the desired SPL output for the 
        specified selection. 

        Positive values in the calibration Misc offset will increase the 
        SPL output. Negative values will decrease the SPL output. The 
        values are 16 bit integers given as dB*100. 

        Setting a calibration Misc offset to zero (0) or Invalid (0x8000) 
        causes that selection to be disabled for the transducer.

        The WhiteNoise item calibrates the White Noise signal. 
        The SpeechNoise item calibrates the speech noise signal. 
        The ExtMic item calibrates both the external and the operator 
        speech microphone signals (they both use the same calibration).
        The Spare1 and Spare2 entries for resevered for future use.


















                                       81


                         Reading and Saving Calibration

        The calibration is stored internally in a non-volitile memory 
        device. It is automatically restored each time the instrument is 
        turned on.  

        There are four commands used to read and write the calibration 
        from an external computer. 

        4106/4107  Read/Set Calibration flags
        4110/4111  Read/Write Non-Volitile Storage

        Before you can calibrate the instrument, you must set it into 
        calibration mode. This is done with command 4107 (set bit 8 to 
        enter calibration mode).  

        While you can read the current calibration data at anytime, you 
        cannot save it to storage unless you are in calibration mode. 
        See command 4106 and 4107 for details of setting the instrument 
        into command mode and the definition of the calibration error 
        flags used by the commands.

        You can read/write the calibration for the entire transducer 
        using commands 4108/4109 for the currently selected transducer, 
        or commands 111/199 to specify a particular transducer. 
        This is useful for reading the information for verification or 
        external backup of the data. 

        You can alter the calibration either by sending the entire 
        calibration data for the transducer using one of the above 
        commands, or by using command 144 to adjust the value of the 
        currently selected transducer. Command 144 will typically be used 
        for manual calibration adjustments. 

        Once the calibration is complete, it can be saved with command 
        4111 to store the data into the Non-Volitile storage. 
        Note: you can delay the save event until the complete calibration 
        of all transdcuers is done. Saving the calibration to 
        non-volitile storage causes all of the current calibration 
        information for all the transducers to be stored together. 

        There are four separate calibration tables in the non-volitile 
        storage. Two are for field calibration use, and two are for 
        factory calibration use. The two tables are used to verify the 
        calibration data when read to insure that the data is valid. If 
        the field calibration data contains an error, the factory 
        calibration data will be used instead. If the factory calibration 
        also contains an error, the audiometer will fall back to a 
        default calibration stored in program memory. If the program 
        memory calibration fails, the instrument will go into fail-safe 
        shut-down. 





                                       82


        =================================================================

                           Version Command Information


        The version command returns six words in the following format:

         [0] Software Version Number 
         [1] Standard Option flags low word
         [2] Standard Option flags high word
         [3] Custom Option Information 
         [4] Expanded Option flags 
         [5] Machine Type
         [6] Machine SubType  (optional - not on FA10)
         [7] Machine Model    (optional - not on FA10)


        Software Version Number:

        The Software Version number identifies the current version of the 
        software that the instrument is operating with. The number is 
        given as Version number times 100 in order to eliminate the 
        decimal point normally found in the version number. Thus version 
        2.24 is returned as 224.

        Option Flags:

        The standard, custom and expanded option flags consists of a 32 
        bit long word (standard) and two 16 bit words (custom and 
        expanded) which is used to indicate when an option has been 
        installed in the instrument. When a standard option bit is on 
        (1), the option is installed. When a standard option bit is off 
        (0), the option is not installed. Custom option word is a numeric 
        value that identifies the custom option that was installed. 

        Standard and Expanded options are those options which are 
        available on all audiometers. A Custom option is an 
        option which is provided through special arrangement with a 
        customer and is not available on other audiometers.

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












                                       83


        Machine Type:

        The machine type identifies the machine being used. As new 
        machines are added, additional machine types will be included in 
        the list of possible machine type numbers returned. 

        As of this writing the following are the defined Colt values:

              135 = Machine Type     
                0 = Machine SubType 
               45 = Model Number

        Additional machine types will be added to the list as new 
        audiometer types are created. All of these audiometers support 
        the same basic FIPP command set. But keep in mind that some may 
        have extended commands that others do not have. For now, you can 
        assume that any machine type between 100 and 200 is an audiometer 
        and that it will respond to the basic FIPP command set. 

        The base model number for the Colt audiometer is 45. Test 
        software looks for audiometer machine type numbers in the range 
        of 100 to 200. The value 90 is subtracted from the machine type 
        to generate the model of the instrument for older instruments 
        that do not return the model number. Thus the number 135 is used 
        for the machine type to retain backward compatibility.

        The Machine SubType defines different configurations of the 
        instrument. For the Colt, a 0 means that it is an audiometer. 
        The SubType works in conjunction with the Option bits to define
        the instrument. In general, the SubType defines hardware 
        differences, while the option bits define software differences.

























                                       84


        Standard Option Flags:

        The standard option flags consists of a 32 bit long word which is 
        used to indicate when a standard option has been installed in the 
        instrument. When the bit is on (1), the option is installed. When 
        the bit is off (0), the option is not installed.

        bit number    flag      functional                bit position
        (long) word - label   - description             76543210 76543210
        -----------------------------------------------------------------
        ----first word----
        ( 0)   0    - ENANSI  - <always on>             ........ .......x
        ( 1)   1    - ENISO   - <always on>             ........ ......x.
        ( 2)   2    - ENOP02  - <reserved>              ........ .....x..
        ( 3)   3    - ENOP03  - <reserved>              ........ ....x...
        ( 4)   4    - ENOP04  - <reserved>              ........ ...x....
        ( 5)   5    - ENOP05  - <reserved>              ........ ..x.....
        ( 6)   6    - ENOP06  - <reserved>              ........ .x......
        ( 7)   7    - ENOP07  - <reserved>              ........ x.......
        ( 8)   8    - ENOP08  - <reserved>              .......x ........
        ( 9)   9    - ENOP09  - <reserved>              ......x. ........
        (10)  10    - ENOP10  - <reserved>              .....x.. ........
        (11)  11    - ENOP11  - <reserved>              ....x... ........
        (12)  12    - ENOP12  - <reserved>              ...x.... ........
        (13)  13    - ENOP13  - <reserved>              ..x..... ........
        (14)  14    - ENOP14  - <reserved>              .x...... ........
        (15)  15    - ENOP15  - <reserved>              x....... ........
        ----second word----
        (16)   0    - ENOP16  - <reserved>              ........ .......x
        (17)   1    - ENOP17  - <reserved>              ........ ......x.
        (18)   2    - ENOP18  - <reserved>              ........ .....x..
        (19)   3    - ENOP19  - <reserved>              ........ ....x...
        (20)   4    - ENOP20  - <reserved>              ........ ...x....
        (21)   5    - ENOP21  - <reserved>              ........ ..x.....
        (22)   6    - ENOP22  - <reserved>              ........ .x......
        (23)   7    - ENHFREQ - HFREQ high freq option  ........ x.......
        (24)   8    - ENOP24  - <reserved>              .......x ........
        (25)   9    - ENOP25  - <reserved>              ......x. ........
        (26)  10    - ENOP26  - <reserved>              .....x.. ........
        (27)  11    - ENOP27  - <reserved>              ....x... ........
        (28)  12    - ENOP28  - <reserved>              ...x.... ........
        (29)  13    - ENOP29  - <reserved>              ..x..... ........
        (30)  14    - ENOP30  - <reserved>              .x...... ........
        (31)  15    - ENOP31  - <reserved>              x....... ........

        Flag bits marked <reserved> are reserved for future use. These 
        flags will change in the future and should not be relied upon to 
        remain in a particular condition. Contact Frye Electronics for an 
        option list update if you are working with an option not listed.







                                       85


        ANSI89 : 0=ansi89 not selected;  1=use ansi89 calibration *note
        ISO    : 0=iso not selected;     1=use iso calibration *note
        HIFRQ  : 0=regular audiometer;   1=high frequency audiometer

        All other bits not used currently. 

        ANSI89 and ISO indicate how the audiometer was calibrated. 
        Both bits are on to indicate newer Ansi96/ISO (IEC92) common 
        calibration is used to calibrate the audiometer.

        HIFRQ is a flag reserved for future use. It is currently off. 
        A later version will be a high frequency audiometer that can 
        operate with extended range to 16KHz. 











































                                       86


        -----------------------------------------------------------------
                                  Special Notes 

        Some of the commands are specific to the Colt series audiometers.
        See the special notes for the various commands to determine those 
        commands that are subject to change. Also note that all commands 
        are subject to change should the audiometer design change. Many 
        commands are specific to the Colt series panel operation.  

        Note that while you can command the audiometer in 1Hz resolution, 
        it will not always provide output in 1Hz resolution. The actual 
        output frequency will be set to the closest possible frequency 
        that can be generated. Other audiometers may be fixed to only the 
        specific audiologic test frequencies, or they may be able to set 
        the frequency exactly. 









































                                       87



        History: 

           11/06/92 -med  Original writing
           04/27/93 -med  V1.11 additions
           10/26/93 -med  V1.12 additions 
           05/02/97 -med  merged responses with get commands (doc)
           09/28/98 -med  V1.20 additions
           01/11/02 -med  added more Ansi96/ISO information
           12/05/06 -med  corrected documentation errors
           06/01/12 -med  Updated For Colt audiometer
           24/10/14 -med  Updated for new Colt Encoder control

        <eof>










































                                       88
