📄 m500auc.lst
字号:
239 =1 unsigned char sector,
240 =1 unsigned char *uncoded_keys);
241 =1
242 =1 // _____________________________________________________________________________
243 =1 //
244 =1 // FUNCTION: PcdReadE2
245 =1 // IN: startaddr 2 bytes of starting address of the E2PROM
246 =1 // length number of byte of data to be read
247 =1 // OUT: *_data buffer for the read bytes
248 =1 // RETURN:
249 =1 // COMMENT: This functions reads out data stored in the MF RC500's EERPOM
250 =1 // beginning ataddress startaddr. The number of bytes to be read are
251 =1 // given by the variablelength and the read out data are stored in
252 =1 // the provided data buffer.
C51 COMPILER V7.50 M500AUC 03/21/2008 00:23:11 PAGE 12
253 =1 //
254 =1 char PcdReadE2(unsigned short startaddr,
255 =1 unsigned char length,
256 =1 unsigned char* _data);
257 =1
258 =1 // _____________________________________________________________________________
259 =1 //
260 =1 // FUNCTION: PcdWriteE2
261 =1 // IN: startaddr 2 bytes of starting address of the E2PROM
262 =1 // length number of byte of data to be write
263 =1 // OUT: *_data buffer for the write bytes
264 =1 // RETURN:
265 =1 // COMMENT: This function writes a given length of data bytes stored in the data
266 =1 // buffer to the reader IC's EEPROM beginning at address <em>startaddr</em>.
267 =1 //
268 =1 char PcdWriteE2(unsigned short startaddr,
269 =1 unsigned char length,
270 =1 unsigned char* _data);
271 =1
272 =1 // _____________________________________________________________________________
273 =1 //
274 =1 // FUNCTION: M500PcdMfOutSelect
275 =1 // IN: type The signal to be appear at MfOut pin
276 =1 //
277 =1 // 000: Constant Low
278 =1 // 001: Constant High
279 =1 // 010: Modulation signal from the internal coder, Miller coded
280 =1 // 011: Serial data stream, not Miller coded
281 =1 // 100: Output signal of the energy carrier demodulator
282 =1 // 101: Output signal of the subcarrier demodulator
283 =1 // 110: RFU
284 =1 // 111: RFU
285 =1 // OUT: -
286 =1 // RETURN:
287 =1 // COMMENT: This function config the output of the MfOut pin
288 =1 //
289 =1 char M500PcdMfOutSelect(unsigned char type);
290 =1
291 =1 // _____________________________________________________________________________
292 =1 //
293 =1 // FUNCTION: M500PcdWriteRegister
294 =1 // IN: Reg Register address
295 =1 // value value to be written
296 =1 // OUT: -
297 =1 // RETURN:
298 =1 // COMMENT: This function write the value to the RC500 register
299 =1 //
300 =1 char M500PcdWriteRegister(unsigned char Reg, unsigned char value);
301 =1
302 =1 // _____________________________________________________________________________
303 =1 //
304 =1 // FUNCTION: M500PcdReadRegister
305 =1 // IN: Reg Register address
306 =1 // OUT: -
307 =1 // RETURN: value value of register
308 =1 // COMMENT: This function read the value of the RC500 register
309 =1 //
310 =1 char M500PcdReadRegister(unsigned char Reg);
311 =1
312 =1 // _____________________________________________________________________________
313 =1 //
314 =1 // FUNCTION: M500PiccRequest
C51 COMPILER V7.50 M500AUC 03/21/2008 00:23:11 PAGE 13
315 =1 // IN: rq_code can take the following values
316 =1 // ALL Request Code 52hex is sent out to get also a
317 =1 // response from cards in halt state.
318 =1 // IDLE Request Code 26hex is sent out to get a response
319 =1 // only from cards that are not in halt state.
320 =1 // Note: Future cards will work also with other request
321 =1 // codes.
322 =1 // OUT: atq 16 bit ATQ (answer to request).
323 =1 // atq[0] .. LSByte
324 =1 // atq[1] .. MSByte
325 =1 // RETURN:
326 =1 // COMMENT: This function accesses the reader module and activates sending the
327 =1 // REQ code to the MIFARE card. After sending the command to the card
328 =1 // the function waits for the card's answer.
329 =1 //
330 =1 // Please note, that the actual work is done by the function
331 =1 // M500PiccCommonRequest, because of the interface behaviour between
332 =1 // Mifare and ISO 14443
333 =1 //
334 =1 // The Card replies the ATQ.
335 =1 //
336 =1 // ATQ:
337 =1 //
338 =1 // +----+----+----+----+----+----+----+----+
339 =1 // LSByte | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
340 =1 // +----+----+----+----+----+----+----+----+
341 =1 // | | | |
342 =1 // | UID size| RFU| bit-frame anticoll |
343 =1 // | | | |
344 =1 // | 00..std | | (if any bit set .. Y, |
345 =1 // | 01..dbl | | else .. N) |
346 =1 // | 10..tpl | | |
347 =1 //
348 =1 //
349 =1 //
350 =1 // +----+----+----+----+----+----+----+----+
351 =1 // MSByte | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
352 =1 // +----+----+----+----+----+----+----+----+
353 =1 // | |
354 =1 // | RFU |
355 =1 // | |
356 =1 //
357 =1 char M500PiccRequest(unsigned char req_code,
358 =1 unsigned char *atq);
359 =1 // _____________________________________________________________________________
360 =1 //
361 =1 // FUNCTION: M500PiccCommonRequest
362 =1 // IN: rq_code can take the following values
363 =1 // ALL Request Code 52hex is sent out to get also a
364 =1 // response from cards in halt state.
365 =1 // IDLE Request Code 26hex is sent out to get a response
366 =1 // only from cards that are not in halt state.
367 =1 // Note: Future cards will work also with other request
368 =1 // codes.
369 =1 // OUT: atq 16 bit ATQ (answer to request).
370 =1 // atq[0] .. LSByte
371 =1 // atq[1] .. MSByte
372 =1 // RETURN:
373 =1 // COMMENT: Please note, that this function does the actual work which is
374 =1 // described in function M500PiccRequest.
375 =1 //
376 =1 char M500PiccCommonRequest(unsigned char req_code,
C51 COMPILER V7.50 M500AUC 03/21/2008 00:23:11 PAGE 14
377 =1 unsigned char *atq);
378 =1
379 =1 // _____________________________________________________________________________
380 =1 //
381 =1 // FUNCTION: M500PiccAnticoll
382 =1 // IN: bcnt Number of snr-bits that are known (default value is 0)
383 =1 // *snr 4 bytes serial number (number of bits, which
384 =1 // are known and indicated by "bcnt"
385 =1 // OUT: *snr 4 bytes serial number, determined by the anticollision
386 =1 // sequence
387 =1 // RETURN:
388 =1 // COMMENT: The actual anticollision loop is done by the function
389 =1 // "M500PiccCascAnticoll". Which is called with select_code 0x93.
390 =1 //
391 =1 char M500PiccAnticoll (unsigned char bcnt,
392 =1 unsigned char *snr);
393 =1
394 =1 // _____________________________________________________________________________
395 =1 //
396 =1 // FUNCTION: M500PiccCascAnticoll
397 =1 // IN: select_code 0x93 standard select code
398 =1 // 0x95 cascaded level 1
399 =1 // 0x97 cascaded level 2
400 =1 // bcnt Number of snr-bits that are known (default value is 0)
401 =1 // *snr 4 bytes serial number (number of bits, which
402 =1 // are known and indicated by "bcnt"
403 =1 // OUT: *snr 4 bytes serial number, determined by the anticollision
404 =1 // sequence
405 =1 // RETURN:
406 =1 // COMMENT: Corresponding to the specification in ISO 14443, this function
407 =1 // is able to handle extended serial numbers. Therefore more than
408 =1 // one select_code is possible. The function transmitts a
409 =1 // select code and all ready tags are responding. The highest
410 =1 // serial number within all responding tags will be returned by
411 =1 // this function.
412 =1 //
413 =1 char M500PiccCascAnticoll (unsigned char select_code,
414 =1 unsigned char bcnt,
415 =1 unsigned char *snr);
416 =1
417 =1 // _____________________________________________________________________________
418 =1 //
419 =1 // FUNCTION: M500PiccSelect
420 =1 // IN: *snr 4 bytes serial number
421 =1 // OUT: *sak 1 byte select acknowledge
422 =1 // xxxxx1xx: Cascade bit set: UID not complete
423 =1 // xx1xx0xx: UID complete,
424 =1 // PICC compliant with ISO/IEC 14443-4
425 =1 // xx0xx0xx: UID complete,
426 =1 // PICC not compliant with ISO/IEC 14443-4
427 =1 // RETURN:
428 =1 // COMMENT: The actual select procedure is done by the function
429 =1 // "M500PiccCascSelect". Which is called with select_code 0x93.
430 =1 //
431 =1 char M500PiccSelect(unsigned char *snr,
432 =1 unsigned char *sak);
433 =1
434 =1 // _____________________________________________________________________________
435 =1 //
436 =1 // FUNCTION: M500PiccCascSelect
437 =1 // IN: select_code
438 =1 // *snr 4 bytes serial number
C51 COMPILER V7.50 M500AUC 03/21/2008 00:23:11 PAGE 15
439 =1 // OUT: *sak 1 byte select acknowledge
440 =1 // RETURN:
441 =1 // COMMENT: Selects a UID level, depending on select code.
442 =1 // Returns Select Acknowledge byte.
443 =1 //
444 =1 // Corresponding to the specification in ISO 14443, this function
445 =1 // is able to handle extended serial numbers. Therefore more than
446 =1 // one select_code is possible.
447 =1 //
448 =1 // Select codes:
449 =1 //
450 =1 // +----+----+----+----+----+----+----+----+
451 =1 // | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
452 =1 // +-|--+-|--+-|--+-|--+----+----+----+-|--+
453 =1 // | | | | | | |
454 =1 // | |
455 =1 // 1 0 0 1 | 001..std | 1..bit frame anticoll
456 =1 // | 010..double |
457 =1 // | 011..triple |
458 =1 //
459 =1 // SAK:
460 =1 //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -