TABLE OF CONTENTS
input.device/IND_ADDHANDLER
input.device/IND_REMHANDLER
input.device/IND_SETMPORT
input.device/IND_SETMTRIG
input.device/IND_SETMTYPE
input.device/IND_SETPERIOD
input.device/IND_SETTHRESH
input.device/IND_WRITEEVENT
input.device/PeekQualifier
input.device/IND_ADDHANDLER                       input.device/IND_ADDHANDLER
   NAME
        IND_ADDHANDLER -- Add an input handler to the device
   FUNCTION
        Add a function to the list of functions called to handle
        input events generated by this device.  The function is called
        as
            newInputEvents = Handler(inputEvents, handlerData);
            D0                       A0           A1
   IO REQUEST
        io_Message      mn_ReplyPort set
        io_Device       preset by OpenDevice
        io_Unit         preset by OpenDevice
        io_Command      IND_ADDHANDLER
        io_Data         a pointer to an interrupt structure.
            is_Data     the handlerData pointer described above
            is_Code     the Handler function address
   NOTES
        The interrupt structure is kept by the input device until a
        RemHandler command is satisfied for it.
input.device/IND_REMHANDLER                       input.device/IND_REMHANDLER
   NAME
        IND_REMHANDLER -- Remove an input handler from the device
   FUNCTION
        Remove a function previously added to the list of handler
        functions.
   IO REQUEST
        io_Message      mn_ReplyPort set
        io_Device       preset by OpenDevice
        io_Unit         preset by OpenDevice
        io_Command      IND_REMHANDLER
        io_Data         a pointer to the interrupt structure.
   NOTES
        This command is not immediate
input.device/IND_SETMPORT                           input.device/IND_SETMPORT
   NAME
        IND_SETMPORT -- Set the current mouse port
   FUNCTION
        This command sets the gameport port at which the mouse is
        connected.
   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Unit         preset by the call to OpenDevice
        io_Command      IND_SETMPORT
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       1
        io_Data         a pointer to a byte that is either 0 or 1,
                        indicating that mouse input should be obtained
                        from either the left or right controller port,
                        respectively.
input.device/IND_SETMTRIG                           input.device/IND_SETMTRIG
   NAME
        IND_SETMTRIG -- Set the conditions for a mouse port report
   FUNCTION
        This command sets what conditions must be met by a mouse
        before a pending Read request will be satisfied.  The trigger
        specification is that used by the gameport device.
   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Unit         preset by the call to OpenDevice
        io_Command      IND_SETMTRIG
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       sizeof(gameportTrigger)
        io_Data         a structure of type GameportTrigger, which
                        has the following elements
            gpt_Keys -
                    GPTB_DOWNKEYS set if button down transitions
                    trigger a report, and GPTB_UPKEYS set if button up
                    transitions trigger a report
            gpt_Timeout -
                    a time which, if exceeded, triggers a report;
                    measured in vertical blank units (60/sec)
            gpt_XDelta  -
                    a distance in x which, if exceeded, triggers a
                    report
            gpt_YDelta  -
                    a distance in x which, if exceeded, triggers a
                    report
input.device/IND_SETMTYPE                           input.device/IND_SETMTYPE
   NAME
        IND_SETMTYPE -- Set the current mouse port controller type
   FUNCTION
        This command sets the type of device at the mouse port, so
        the signals at the port may be properly interpreted.
   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Unit         preset by the call to OpenDevice
        io_Command      IND_SETMTYPE
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       1
        io_Data         the address of the byte variable describing
                        the controller type, as per the equates in
                        the gameport include file
input.device/IND_SETPERIOD                         input.device/IND_SETPERIOD
   NAME
        IND_SETPERIOD -- Set the key repeat period
   FUNCTION
        This command sets the period at which a repeating key repeats.
        This command always executes immediately.
   IO REQUEST - a timerequest
        tr_node.io_message      mn_replyport set if quick i/o is not possible
        tr_node.io_device       preset by the call to opendevice
        tr_node.io_unit         preset by the call to opendevice
        tr_node.io_command      ind_setperiod
        tr_node.io_flags        iob_quick set if quick i/o is possible
        tr_time.tv_secs         the repeat period seconds
        tr_time.tv_micro        the repeat period microseconds
input.device/IND_SETTHRESH                         input.device/IND_SETTHRESH
   NAME
        IND_SETTHRESH -- Set the key repeat threshold
   FUNCTION
        This command sets the time that a key must be held down before
        it can repeat.  The repeatability of a key may be restricted
        (as, for example, are the shift keys).
        This command always executes immediately.
   IO REQUEST - a timerequest
        tr_node.io_message      mn_replyport set if quick i/o is not possible
        tr_node.io_device       preset by the call to opendevice
        tr_node.io_unit         preset by the call to opendevice
        tr_node.io_command      ind_setthresh
        tr_node.io_flags        iob_quick set if quick i/o is possible
        tr_time.tv_secs         the threshold seconds
        tr_time.tv_micro        the threshold microseconds
input.device/IND_WRITEEVENT                       input.device/IND_WRITEEVENT
   NAME
        IND_WRITEEVENT -- Propagate an input event to all handlers
   FUNCTION
   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Unit         preset by the call to OpenDevice
        io_Command      IND_WRITEEVENT
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       should be sizeof(struct InputEvent)
        io_Data         a pointer to the struct InputEvent:
            ie_NextEvent
                        will be ignored.
            ie_Class
            ie_SubClass
            ie_Code
            ie_Qualifier
            ie_X, ie_Y
                        as desired
            ie_TimeStamp
                        will be set by this call (V36)
   NOTES
        The contents of the input event are destroyed.
        This function was documented in V34 and earlier to allow
        chaining of events via ie_NextEvent.  The implementation
        never allowed that.  The documentation now reflects this.
        ie_TimeStamp is set only in V36 and later.  Software written
        to run on earlier versions should set this field to the
        current time.
input.device/PeekQualifier                         input.device/PeekQualifier
   NAME
        PeekQualifier -- get the input device's current qualifiers (V36)
   SYNOPSIS
        qualifier = PeekQualifier()
        d0
        UWORD PeekQualifier( VOID );
   FUNCTION
        This function takes a snapshot of what the input device thinks
        the current qualifiers are.
   RESULTS
        qualifier - a word with the following bits set according to
            what the input device knows their state to be:
                IEQUALIFIER_LSHIFT, IEQUALIFIER_RSHIFT,
                IEQUALIFIER_CAPSLOCK, IEQUALIFIER_CONTROL,
                IEQUALIFIER_LALT, IEQUALIFIER_RALT,
                IEQUALIFIER_LCOMMAND, IEQUALIFIER_RCOMMAND,
                IEQUALIFIER_LEFTBUTTON, IEQUALIFIER_RBUTTON,
                IEQUALIFIER_MIDBUTTON
   NOTE
        This function is new for V36.
   SEE ALSO
        devices/inputevent.h