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.