break;\r
};\r
\r
- if(mifare_classic_halt(NULL, cuid)) {\r
- if (MF_DBGLEVEL >= 1) Dbprintf("Halt error");\r
- break;\r
- };\r
+ mifare_classic_halt(NULL, cuid);\r
};\r
\r
// reset chip\r
break;\r
};\r
\r
- if(mifare_classic_halt(NULL, cuid)) {\r
- if (MF_DBGLEVEL >= 1) Dbprintf("Halt error");\r
- break;\r
- };\r
+ mifare_classic_halt(NULL, cuid);\r
}; \r
\r
// write block\r
}; \r
\r
if (workFlags & 0x04) {\r
- if (mifare_classic_halt(NULL, cuid)) {\r
- if (MF_DBGLEVEL >= 1) Dbprintf("Halt error");\r
- break;\r
- };\r
+ mifare_classic_halt(NULL, cuid);\r
}\r
\r
isOK = 1;\r
// bit 2 - need HALT after sequence\r
// bit 3 - need init FPGA and field before sequence\r
// bit 4 - need reset FPGA and LED\r
+ // bit 5 - need to set datain instead of issuing USB reply (called via ARM for StandAloneMode14a)\r
uint8_t workFlags = arg0;\r
uint8_t blockNo = arg2;\r
\r
memcpy(data, receivedAnswer, 18);\r
\r
if (workFlags & 0x04) {\r
- if (mifare_classic_halt(NULL, cuid)) {\r
- if (MF_DBGLEVEL >= 1) Dbprintf("Halt error");\r
- break;\r
- };\r
+ mifare_classic_halt(NULL, cuid);\r
}\r
\r
isOK = 1;\r
}\r
\r
LED_B_ON();\r
- cmd_send(CMD_ACK,isOK,0,0,data,18);\r
+ if (workFlags & 0x20) {\r
+ if (isOK)\r
+ memcpy(datain, data, 18);\r
+ }\r
+ else\r
+ cmd_send(CMD_ACK,isOK,0,0,data,18);\r
LED_B_OFF();\r
\r
if ((workFlags & 0x10) || (!isOK)) {\r
// card commands\r
uint8_t wupC1[] = { 0x40 }; \r
uint8_t wupC2[] = { 0x43 }; \r
+ uint8_t halt_ret = 0;\r
\r
// variables\r
byte_t isOK = 1;\r
isOK = 0;\r
};\r
\r
- if (mifare_classic_halt(NULL, 0)) {\r
+ halt_ret = mifare_classic_halt(NULL, 0);\r
+ if (halt_ret && halt_ret != 4) {\r
isOK = 0;\r
};\r
\r