+#define ICLASS_CMD_ACTALL 0x0A
+#define ICLASS_CMD_IDENTIFY 0x0C
+#define ICLASS_CMD_READ 0x0C
+
+#define ICLASS_CMD_SELECT 0x81
+#define ICLASS_CMD_PAGESEL 0x84
+#define ICLASS_CMD_READCHECK 0x88
+#define ICLASS_CMD_CHECK 0x05
+#define ICLASS_CMD_SOF 0x0F
+#define ICLASS_CMD_HALT 0x00
+
+
+void explain(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
+{
+
+ if(cmdsize > 1 && cmd[0] == ICLASS_CMD_READ)
+ {
+ snprintf(exp,size,"READ(%d)",cmd[1]);
+ return;
+ }
+
+ switch(cmd[0])
+ {
+ case ICLASS_CMD_ACTALL: snprintf(exp,size,"ACTALL"); break;
+ case ICLASS_CMD_IDENTIFY: snprintf(exp,size,"IDENTIFY"); break;
+ case ICLASS_CMD_SELECT: snprintf(exp,size,"SELECT"); break;
+ case ICLASS_CMD_PAGESEL: snprintf(exp,size,"PAGESEL"); break;
+ case ICLASS_CMD_READCHECK: snprintf(exp,size,"READCHECK"); break;
+ case ICLASS_CMD_CHECK: snprintf(exp,size,"CHECK"); break;
+ case ICLASS_CMD_SOF: snprintf(exp,size,"SOF"); break;
+ case ICLASS_CMD_HALT: snprintf(exp,size,"HALT"); break;
+ default: snprintf(exp,size,"?"); break;
+ }
+ return;
+}
+