lll_msr.h
来自「非接触式M1卡读写器,读写源程序,可读S50/S70的卡」· C头文件 代码 · 共 176 行
H
176 行
#ifdef __SRC
#define EXTERN
#else
#define EXTERN extern
#endif
// Common Defines
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
typedef struct _KEY { uchar _key[6]; } KEY;
// Global Prototypes
EXTERN uchar mifs_request(uchar _Mode, uchar idata *_TT);
EXTERN uchar mifs_anticoll(uchar _Bcnt, uchar idata *_SNR);
EXTERN uchar mifs_select(uchar idata *_SNR, uchar idata *_Size);
EXTERN uchar mifs_authentication(uchar _Mode, uchar _SecNr);
EXTERN uchar mifs_authentication_2(uchar _Mode, uchar _KeyNr, uchar _Address);
EXTERN uchar mifs_halt(void);
EXTERN uchar mifs_read(uchar _Adr, uchar idata *_Data);
EXTERN uchar mifs_write(uchar _Adr, uchar idata *_Data);
EXTERN uchar mifs_increment(uchar _Adr, uchar idata *_Value);
EXTERN uchar mifs_decrement(uchar _Adr, uchar idata *_Value);
EXTERN uchar mifs_decrement_transfer(uchar _Adr, uchar idata *_Value);
EXTERN uchar mifs_restore(uchar _Adr);
EXTERN uchar mifs_transfer(uchar _Adr);
EXTERN uchar mifs_load_key(uchar _Mode, uchar _SecNr, KEY *_TK, KEY *_NK);
EXTERN void mifs_reset(uchar idata *_Msec);
EXTERN void mifs_set_control_bit(uchar _Byte);
EXTERN void mifs_clr_control_bit(uchar _Byte);
EXTERN void mifs_config(uchar _Mode, uchar _Baud);
EXTERN void idle_mifs_request(void);
// Hardware Addresses of the MFSLS1x2-ASIC
#ifdef __SRC
volatile uchar xdata MCM_DATA _at_ 0x8000;
volatile uchar xdata MCM_STACON _at_ 0x8001;
volatile uchar xdata MCM_ENABLE _at_ 0x8002;
volatile uchar xdata MCM_BCNTS _at_ 0x8003;
volatile uchar xdata MCM_BCNTR _at_ 0x8004;
volatile uchar xdata MCM_BAUDRATE _at_ 0x8005;
volatile uchar xdata MCM_TOC _at_ 0x8006;
volatile uchar xdata MCM_MODE _at_ 0x8007;
volatile uchar xdata MCM_CRCDATA _at_ 0x8008;
volatile uchar xdata MCM_CRCSTACON _at_ 0x8009;
volatile uchar xdata MCM_KEYDATA _at_ 0x800A;
volatile uchar xdata MCM_KEYSTACON _at_ 0x800B;
volatile uchar xdata MCM_KEYADR _at_ 0x800C;
volatile uchar xdata MCM_RCODE _at_ 0x800E;
#else
extern volatile uchar xdata MCM_DATA;
extern volatile uchar xdata MCM_STACON;
extern volatile uchar xdata MCM_ENABLE;
extern volatile uchar xdata MCM_BCNTS;
extern volatile uchar xdata MCM_BCNTR;
extern volatile uchar xdata MCM_BAUDRATE;
extern volatile uchar xdata MCM_TOC;
extern volatile uchar xdata MCM_MODE;
extern volatile uchar xdata MCM_CRCDATA;
extern volatile uchar xdata MCM_CRCSTACON;
extern volatile uchar xdata MCM_KEYDATA;
extern volatile uchar xdata MCM_KEYSTACON;
extern volatile uchar xdata MCM_KEYADR;
extern volatile uchar xdata MCM_RCODE;
#endif
// MIFARE1 Hardware Functions
#define _REQUEST 0x26
#define _REQUEST_ALL 0x52
#define _REQUEST_TEST 0x0F
// Lowest-Level Defines
// STACON
#define _DV 0x80
#define _TE 0x40
#define _PE 0x20
#define _CE 0x10
#define _BE 0x08
#define _AE 0x04
#define _SOR 0x80
#define _RFS 0x40
#define _MI1 0x04
#define _NRF 0x02
#define _AC 0x01
// ENABLE
#define _PEN 0x80
#define _PRE 0x40
#define _CEN 0x20
#define _CRE 0x10
// KEYSTACON
#define _AL 0x80
#define _S 0x40
#define _DKL 0x10
#define _KS0 0x00
#define _KS1 0x01
#define _KS2 0x02
#define _TRAN 0x03
// KEYADR
#define _AUTH 0x80
#define _LOAD 0x00
#define _KEYB 0x40
#define _KEYA 0x00
// Error Codes
#define OK 0
#define W_NOTAG 1
#define W_CRC 2
#define W_EMPTY 3
#define W_AUTH 4
#define W_PARITY 5
#define W_CODE 6
#define W_SERNR 8
#define W_NOTAUTH 10
#define W_BITCNT 11
#define W_BYTECNT 12
#define W_TRANS 14
#define W_WRITE 15
#define W_INCR 16
#define W_DECR 17
#define W_READ 18
#define QUIT 30
#define MIS_CHK_OK 0
#define MIS_CHK_FAILED 1
#define MIS_CHK_COMPERR 2
#define W_VERIFY 19
#define W_CMD_NY_IMPL 100
// Helpful Defines
#define IDLE 0x00
#define ALL 0x01
#define EVER 0x80
#define KEYB 0x04
#define KEYA 0x00
#define KEYSET0 0x00
#define KEYSET1 0x01
#define KEYSET2 0x02
#define KEYS 0x03
#undef EXTERN
/***************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?