// free eventually allocated BigBuf memory\r
BigBuf_free();\r
\r
- clear_trace();\r
- set_tracing(false);\r
+ if (calibrate) clear_trace();\r
+ set_tracing(true);\r
\r
// statistics on nonce distance\r
int16_t isOK = 0;\r
dmax = davg + 2;\r
\r
LED_B_OFF();\r
- \r
}\r
// ------------------------------------------------------------------------------------------------- \r
\r
\r
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
LEDsoff();\r
- set_tracing(TRUE);\r
+ set_tracing(FALSE);\r
}\r
\r
//-----------------------------------------------------------------------------\r
// MIFARE check keys. key count up to 85. \r
// \r
//-----------------------------------------------------------------------------\r
-void MifareChkKeys(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain)\r
+void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain)\r
{\r
// params\r
- uint8_t blockNo = arg0;\r
- uint8_t keyType = arg1;\r
+ uint8_t blockNo = arg0 & 0xff;\r
+ uint8_t keyType = (arg0 >> 8) & 0xff;\r
+ bool clearTrace = arg1;\r
uint8_t keyCount = arg2;\r
uint64_t ui64Key = 0;\r
\r
LED_C_OFF();\r
iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
\r
- clear_trace();\r
+ if (clearTrace) clear_trace();\r
set_tracing(TRUE);\r
\r
for (i = 0; i < keyCount; i++) {\r
\r
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
LEDsoff();\r
-\r
+ set_tracing(FALSE);\r
+ \r
// restore debug level\r
MF_DBGLEVEL = OLD_MF_DBGLEVEL; \r
}\r
\r
void MifareEMemSet(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain){\r
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);\r
- emlSetMem(datain, arg0, arg1); // data, block num, blocks count\r
+ //emlSetMem(datain, arg0, arg1); // data, block num, blocks count \r
+ emlSetMem_xt(datain, arg0, arg1, arg2); // data, block num, blocks count, block byte width\r
}\r
\r
void MifareEMemGet(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint8_t *datain){\r
iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
\r
clear_trace();\r
- set_tracing(false);\r
+ set_tracing(TRUE);\r
\r
bool isOK = true;\r
\r
\r
if (MF_DBGLEVEL >= 2) DbpString("EMUL FILL SECTORS FINISHED");\r
\r
+ set_tracing(FALSE);\r
}\r
\r
\r
if ((workFlags & 0x10) || (!isOK)) {\r
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
LEDsoff();\r
+ set_tracing(FALSE);\r
}\r
}\r
\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
}\r
\r
LED_B_ON();\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
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
LEDsoff();\r
+ set_tracing(FALSE);\r
}\r
}\r
\r
LED_B_OFF();\r
LED_C_OFF();\r
\r
-iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
+ iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);\r
clear_trace();\r
set_tracing(TRUE);\r
- \r
- \r
+ \r
for (int i = 0; i < iterations; i++) {\r
\r
WDT_HIT();\r
}\r
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);\r
LEDsoff();\r
+ set_tracing(FALSE);\r
}\r
\r
//\r