[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

TABLE OF CONTENTS

keyboard.device/CMD_CLEAR
keyboard.device/KBD_ADDRESETHANDLER
keyboard.device/KBD_READEVENT
keyboard.device/KBD_READMATRIX
keyboard.device/KBD_REMRESETHANDLER
keyboard.device/KBD_RESETHANDLERDONE
keyboard.device/CMD_CLEAR                           keyboard.device/CMD_CLEAR

   NAME
        CMD_CLEAR -- Clear the keyboard input buffer.

   FUNCTION
        Remove from the input buffer any keys transitions waiting to
        satisfy read requests.

   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Command      CMD_CLEAR
        io_Flags        IOB_QUICK set if quick I/O is possible

keyboard.device/KBD_ADDRESETHANDLER       keyboard.device/KBD_ADDRESETHANDLER

   NAME
        KBD_ADDRESETHANDLER -- Add a keyboard reset handler.

   FUNCTION
        Add a function to the list of functions called to clean up
        before a hard reset generated at the keyboard.  The reset
        handler is called as:
            ResetHandler(handlerData)
                         a1

   IO REQUEST
        io_Message      mn_ReplyPort set
        io_Device       preset by OpenDevice
        io_Unit         preset by OpenDevice
        io_Command      KBD_ADDRESETHANDLER
        io_Data         a pointer to an interrupt structure.
            is_Data     the handlerData pointer described above
            is_Code     the Handler function address

   NOTES
        Few of the Amiga keyboard models generate the communication codes
        used to implement this reset processing.  Specifically, only the
        Euro a1000 (rare), and the B2000 keyboard generate them.

        The interrupt structure is kept by the keyboard device until a
        RemResetHandler command is satisfied for it, but the
        KBD_ADDRESETHANDLER command itself is replied immediately.

keyboard.device/KBD_READEVENT                   keyboard.device/KBD_READEVENT

   NAME
        KBD_READEVENT -- Return the next keyboard event.

   FUNCTION
        Read raw keyboard events from the keyboard and put them in the
        data area of the iORequest.  If there are no pending keyboard
        events, this command will not be satisfied, but if there are
        some events, but not as many as can fill IO_LENGTH, the
        request will be satisfied with those currently available.

   IO REQUEST
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Command      KBD_READEVENT
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       the size of the io_Data area in bytes: there
                        are sizeof(inputEvent) bytes per input event.
        io_Data         a buffer area to fill with input events.  The
                        fields of the input event are:
            ie_NextEvent
                        links the events returned
            ie_Class
                        is IECLASS_RAWKEY
            ie_Code
                        contains the next key up/down reports
            ie_Qualifier
                        only the shift and numeric pad bits are set
            ie_SubClass, ie_X, ie_Y, ie_TimeStamp
                        are not used, and set to zero

   RESULTS
        This function sets the error field in the IORequest, and fills
        the IORequest with the next keyboard events (but not partial
        events).

keyboard.device/KBD_READMATRIX                 keyboard.device/KBD_READMATRIX

   NAME
        KBD_READMATRIX -- Read the current keyboard key matrix.

   FUNCTION
        This function reads the up/down state of every key in the
        key matrix.

   IO REQUEST INPUT
        io_Message      mn_ReplyPort set if quick I/O is not possible
        io_Device       preset by the call to OpenDevice
        io_Command      KBD_READMATRIX
        io_Flags        IOB_QUICK set if quick I/O is possible
        io_Length       the size of the io_Data area in bytes: this
                        must be big enough to hold the key matrix.
        io_Data         a buffer area to fill with the key matrix:
                        an array of bytes whose component bits reflect
                        each keys state: the state of the key for
                        keycode n is at bit (n MOD 8) in byte
                        (n DIV 8) of this matrix.

   IO REQUEST OUTPUT
        io_Error
             IOERR_BADLENGTH - the io_Length was not exactly 13 bytes.
                        The buffer is unchanged.  This is only returned
                        by V33/V34 kickstart.
        io_Actual       the number of bytes filled in io_Data with key
                        matrix data, i.e. the minimum of the supplied
                        length and the internal key matrix size.

   NOTE
        For V33/V34 Kickstart, io_Length must be set to exactly 13 bytes.

   RESULTS
        This function sets the error field in the IORequest, and sets
        matrix to the current key matrix.

keyboard.device/KBD_REMRESETHANDLER       keyboard.device/KBD_REMRESETHANDLER

   NAME
        KBD_REMRESETHANDLER -- Remove a keyboard reset handler.

   FUNCTION
        Remove a function previously added to the list of reset
        handler functions with KBD_ADDRESETHANDLER.

   IO REQUEST
        io_Message      mn_ReplyPort set
        io_Device       preset by OpenDevice
        io_Unit         preset by OpenDevice
        io_Command      KBD_REMRESETHANDLER
        io_Data         a pointer to the handler interrupt structure.

keyboard.device/KBD_RESETHANDLERDONE     keyboard.device/KBD_RESETHANDLERDONE

   NAME
        KBD_RESETHANDLERDONE -- Indicate that reset handling is done.

   FUNCTION
        Indicate that reset cleanup associated with the handler has
        completed.  This command should be issued by all keyboard
        reset handlers so that the reset may proceed.

   IO REQUEST
        io_Message      mn_ReplyPort set
        io_Device       preset by OpenDevice
        io_Unit         preset by OpenDevice
        io_Command      KBD_RESETHANDLERDONE
        io_Data         a pointer to the handler interrupt structure.

   NOTES
        The keyboard processor itself performs the hardware reset, and
        will time out and perform the reset even if some reset handlers
        have not indicated yet that the reset may proceed.  This
        timeout is several seconds.