-#if __WORDSIZE == 32
#define VERSION 0x910
#define LICENSE 0x952
#define TRANSFER 0x98c
+#define MULTI_TRANSFER 0x98d
#define USB_TRANSFER 0x983
#define EVENT_UNREGISTER 0x987
#define INT_DISABLE 0x91f
#define INT_ENABLE 0x98e
#define EVENT_PULL 0x988
#define USB_SET_INTERFACE 0x981
+#define CARD_REGISTER_OLD 0x97d
+#define INT_ENABLE_OLD 0x91e
+#define USB_GET_DEVICE_DATA_OLD 0x980
+#define EVENT_REGISTER_OLD 0x986
+#define TRANSFER_OLD 0x903
+#define MULTI_TRANSFER_OLD 0x904
+
+#define MAGIC 0xa410b413UL
+
+#define PP_DATA 0
+#define PP_STATUS 1
+#define PP_CONTROL 2
+#define PP_ECP_CFGA 0
+#define PP_ECP_CFGB 1
+#define PP_ECP_ECR 2
+#define PP_READ 10
+#define PP_WRITE 13
+
+#define PP_TDI 0x01
+#define PP_TDO 0x10
+#define PP_PROG 0x10
+#define PP_TCK 0x02
+#define PP_TMS 0x04
+#define PP_CTRL 0x08
+
+#ifdef DEBUG
+#define DPRINTF(format, args...) fprintf(stderr, format, ##args)
#else
-#define VERSION 0xc0000910
-#define LICENSE 0xc0000952
-#define TRANSFER 0xc000098c
-#define USB_TRANSFER 0xc0000983
-#define EVENT_UNREGISTER 0xc0000987
-#define INT_DISABLE 0xc000091f
-#define INT_WAIT 0xc000094b
-#define CARD_REGISTER 0xc00009a4
-#define EVENT_REGISTER 0xc00009a5
-#define CARD_UNREGISTER 0xc000092b
-#define USB_GET_DEVICE_DATA 0xc00009a7
-#define INT_ENABLE 0xc000098e
-#define EVENT_PULL 0xc0000988
-#define USB_SET_INTERFACE 0xc0000981
+#define DPRINTF(format, args...)
#endif
-#define MAGIC 0xa410b413UL
+void hexdump(unsigned char *buf, int len);
#define WDU_GET_MAX_PACKET_SIZE(x) ((unsigned short) (((x) & 0x7ff) * (1 + (((x) & 0x1800) >> 11))))