.equ ReportDescriptorSize = 63 .equ JoystickReportCount =1 .equ JoystickReport1Size =3 ReportDescriptor: .db 0x05,0x01 ;Usage_Page (Generic Desktop) .db 0x09,0x04 ;Usage (Joystick) .db 0xA1,0x01 ;Collection (Application) .db 0x05,0x01 ;Usage_Page (Generic Desktop) .db 0x09,0x01 ;Usage (Pointer) .db 0xA1,0x00 ;Collection (Physical) .db 0x09,0x30 ;Usage (X) - OK .db 0x09,0x31 ;Usage (Y) - OK .db 0x15,0x81 ;Logical_Minimum (-127) .db 0x25,0x7F ;Logical Maximum (127) .db 0x75,0x08 ;Report_Size (8) .db 0x95,0x02 ;Report_Count (2) .db 0x81,0x02 ;Input (Data, Var, Abs) .db 0xC0,0x16 ;End_Collection, dummy .db 0x01,0xFE ;... dummy logical minimum .db 0x09,0x00 ;Usage (undefined) .db 0x15,0x00 ;Logical_Minimum (0) .db 0x25,0x05 ;Logical_Maximum (5) .db 0x75,0x06 ;Report_Size (6) .db 0x95,0x01 ;Report_Count (1) .db 0x81,0x02 ;Input (Data, Var, Abs) .db 0x05,0x09 ;Usage_Page (Button) .db 0x19,0x01 ;Usage_Minimum (Button 1) .db 0x29,0x02 ;Usage_Maximum (Button 2) .db 0x15,0x00 ;Logical_Minimum (0) .db 0x25,0x01 ;Logical_Maximum (1) .db 0x75,0x01 ;Report_Size (1) .db 0x95,0x02 ;Report_Count (2) .db 0x55,0x00 ;Unit_Exponent (0) .db 0x65,0x00 ;Unit (None) .db 0x81,0x02 ;Input (Data, Var, Abs) .db 0xC0,0x00 ;End_Collection , dummy padding ReportDescriptorEnd: