#define ISO14443A_CMD_WUPA 0x52
#define ISO14443A_CMD_ANTICOLL_OR_SELECT 0x93
#define ISO14443A_CMD_ANTICOLL_OR_SELECT_2 0x95
+#define ISO14443A_CMD_ANTICOLL_OR_SELECT_3 0x97
#define ISO14443A_CMD_WRITEBLOCK 0xA0
#define ISO14443A_CMD_HALT 0x50
#define ISO14443A_CMD_RATS 0xE0
#define MIFARE_EV1_PERSONAL_UID 0x40
#define MIFARE_EV1_SETMODE 0x43
-
#define MIFARE_ULC_WRITE 0xA2
//#define MIFARE_ULC__COMP_WRITE 0xA0
#define MIFARE_ULC_AUTH_1 0x1A
#define MIFARE_ULEV1_CHECKTEAR 0x3E
#define MIFARE_ULEV1_VCSL 0x4B
+// mifare 4bit card answers
+#define CARD_ACK 0x0A // 1010 - ACK
+#define CARD_NACK_NA 0x04 // 0100 - NACK, not allowed (command not allowed)
+#define CARD_NACK_TR 0x05 // 0101 - NACK, transmission error
+
// Magic Generation 1, parameter "work flags"
// bit 0 - need get UID
#define FUSE_RA 0x01
// ISO 7816-4 Basic interindustry commands. For command APDU's.
-#define ISO7816_READ_BINARY 0xB0
-#define ISO7816_WRITE_BINARY 0xD0
-#define ISO7816_UPDATE_BINARY 0xD6
-#define ISO7816_ERASE_BINARY 0x0E
-#define ISO7816_READ_RECORDS 0xB2
-#define ISO7816_WRITE_RECORDS 0xD2
-#define ISO7816_APPEND_RECORD 0xE2
-#define ISO7816_UPDATE_RECORD 0xDC
-#define ISO7816_GET_DATA 0xCA
-#define ISO7816_PUT_DATA 0xDA
-#define ISO7816_SELECT_FILE 0xA4
-#define ISO7816_VERIFY 0x20
+#define ISO7816_READ_BINARY 0xB0
+#define ISO7816_WRITE_BINARY 0xD0
+#define ISO7816_UPDATE_BINARY 0xD6
+#define ISO7816_ERASE_BINARY 0x0E
+#define ISO7816_READ_RECORDS 0xB2
+#define ISO7816_WRITE_RECORDS 0xD2
+#define ISO7816_APPEND_RECORD 0xE2
+#define ISO7816_UPDATE_RECORD 0xDC
+#define ISO7816_GET_DATA 0xCA
+#define ISO7816_PUT_DATA 0xDA
+#define ISO7816_SELECT_FILE 0xA4
+#define ISO7816_VERIFY 0x20
#define ISO7816_INTERNAL_AUTHENTICATION 0x88
#define ISO7816_EXTERNAL_AUTHENTICATION 0x82
-#define ISO7816_GET_CHALLENGE 0xB4
-#define ISO7816_MANAGE_CHANNEL 0x70
+#define ISO7816_GET_CHALLENGE 0xB4
+#define ISO7816_MANAGE_CHANNEL 0x70
// ISO7816-4 For response APDU's
-#define ISO7816_OK 0x9000
+#define ISO7816_OK 0x9000
// 6x xx = ERROR
void printIclassDumpInfo(uint8_t* iclass_dump);