⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mifare1.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#01H
	MOV  	A,#03H
?C0217:
;         return 2;
			; SOURCE LINE # 341
	LJMP 	?C0246
;     }
			; SOURCE LINE # 342
?C0066:
;     
;     if(cmd[1] == CMD_READ)    // READ M1 CARD
			; SOURCE LINE # 344
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	XRL  	A,#02H
	JZ   	$ + 5H
	LJMP 	?C0067
;     {
			; SOURCE LINE # 345
;         if(len != 4)
			; SOURCE LINE # 346
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0191
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#04H
?C0191:
	JZ   	?C0068
;         {
			; SOURCE LINE # 347
;             cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 348
?C0214:
;             return 1;
			; SOURCE LINE # 349
	LJMP 	?C0250
;         }
			; SOURCE LINE # 350
?C0068:
;         
;         if(m1block == ALLBLOCK)
			; SOURCE LINE # 352
	MOV  	DPTR,#m1block?263
	MOVX 	A,@DPTR
	CPL  	A
	JZ   	$ + 5H
	LJMP 	?C0069
;         {
			; SOURCE LINE # 353
;             if((i = M500Read((m1sector<<2), cmd+1)) != MI_OK)
			; SOURCE LINE # 354
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	R7,A
	MOV  	A,R1
	ADD  	A,#01H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	LCALL	_M500Read
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	JZ   	?C0070
;             {
			; SOURCE LINE # 355
;                 // error
;                 cmd[0] = FAIL;
			; SOURCE LINE # 357
;                 cmd[1] = i;
			; SOURCE LINE # 358
;                 return 2;
			; SOURCE LINE # 359
	LJMP 	?C0248
;             }
			; SOURCE LINE # 360
?C0070:
;             else if((i = M500Read((m1sector<<2) + 1, cmd+1+16)) != MI_OK)
			; SOURCE LINE # 361
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	INC  	A
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#011H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	LCALL	_M500Read
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	JZ   	?C0072
;             {
			; SOURCE LINE # 362
;                 // error
;                 cmd[0] = FAIL;
			; SOURCE LINE # 364
?C0220:
;                 cmd[1] = i;
			; SOURCE LINE # 365
;                 return 2;
			; SOURCE LINE # 366
	LJMP 	?C0248
;             }
			; SOURCE LINE # 367
?C0072:
;             else if((i = M500Read((m1sector<<2) + 2, cmd+1+16+16)) != MI_OK)
			; SOURCE LINE # 368
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#02H
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#021H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	LCALL	_M500Read
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#cmd?245
	JZ   	?C0074
;             {
			; SOURCE LINE # 369
;                 // error
;                 cmd[0] = FAIL;
			; SOURCE LINE # 371
?C0210:
;                 cmd[1] = i;
			; SOURCE LINE # 372
;                 return 2;
			; SOURCE LINE # 373
	LJMP 	?C0227
;             }
			; SOURCE LINE # 374
?C0074:
;             else
;             {
			; SOURCE LINE # 376
;                 // success
;                 cmd[0] = SUCCESS;
			; SOURCE LINE # 378
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	CLR  	A
	LCALL	?C?CSTPTR
;                 return 49;
			; SOURCE LINE # 379
	MOV  	R6,A
	MOV  	R7,#031H
	RET  	
;             }
			; SOURCE LINE # 380
;         }
			; SOURCE LINE # 381
?C0069:
;         else
;         {
			; SOURCE LINE # 383
;             if((i = M500Read((m1sector<<2) + m1block, cmd+1)) != MI_OK)
			; SOURCE LINE # 384
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	R7,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,R7
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#01H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	LCALL	_M500Read
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#cmd?245
	JNZ  	$ + 5H
	LJMP 	?C0224
;             {
			; SOURCE LINE # 385
;                 // read error
;                 cmd[0] = FAIL;
			; SOURCE LINE # 387
?C0222:
;                 cmd[1] = i;
			; SOURCE LINE # 388
;                 return 2;
			; SOURCE LINE # 389
	LJMP 	?C0227
;             }
			; SOURCE LINE # 390
;             else
;             {
;                 cmd[0] = SUCCESS;
;                 return 17;
;             }
			; SOURCE LINE # 395
;         }
			; SOURCE LINE # 396
;     }
			; SOURCE LINE # 397
?C0067:
;     else if(cmd[1] == CMD_WRITE)
			; SOURCE LINE # 398
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	XRL  	A,#03H
	JNZ  	?C0080
;     {
			; SOURCE LINE # 399
;         if(len != 20)
			; SOURCE LINE # 400
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0192
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#014H
?C0192:
	JZ   	?C0081
;         {
			; SOURCE LINE # 401
;             cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 402
?C0219:
;             return 1;
			; SOURCE LINE # 403
	LJMP 	?C0250
;         }
			; SOURCE LINE # 404
?C0081:
;         
;         if((i = M500Write((m1sector<<2) + m1block, m1data)) != MI_OK)
			; SOURCE LINE # 406
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	R7,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,R7
	MOV  	R7,A
	MOV  	DPTR,#m1data?269
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	_M500Write
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	JZ   	?C0082
;         {
			; SOURCE LINE # 407
;             cmd[0] = FAIL;
			; SOURCE LINE # 408
?C0221:
;             cmd[1] = i;
			; SOURCE LINE # 409
;             return 2;
			; SOURCE LINE # 410
	LJMP 	?C0248
;         }
			; SOURCE LINE # 411
?C0082:
;         else if((i = M500Read((m1sector<<2) + m1block, cmd+1)) != MI_OK) // read back
			; SOURCE LINE # 412
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	R7,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,R7
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#01H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	LCALL	_M500Read
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#cmd?245
	JZ   	?C0084
;         {
			; SOURCE LINE # 413
;             cmd[0] = FAIL;
			; SOURCE LINE # 414
?C0223:
;             cmd[1] = i;
			; SOURCE LINE # 415
;             return 2;
			; SOURCE LINE # 416
	LJMP 	?C0227
;         }
			; SOURCE LINE # 417
?C0084:
;         else
;         {
			; SOURCE LINE # 419
;             cmd[0] = SUCCESS;
			; SOURCE LINE # 420
?C0224:
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	CLR  	A
	LCALL	?C?CSTPTR
;             return 17;
			; SOURCE LINE # 421
	MOV  	R6,A
	MOV  	R7,#011H
	RET  	
;         }
			; SOURCE LINE # 422
;     }
			; SOURCE LINE # 423
?C0080:
;     
;     // 钱包 ////////////////////////////////////////////
;     else if(cmd[1] == CMD_INCEP)
			; SOURCE LINE # 426
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	XRL  	A,#05H
	JZ   	$ + 5H
	LJMP 	?C0087
;     {
			; SOURCE LINE # 427
;         uchar m1bakblock, m1eptype;
;         
;         m1bakblock = m1data[0];
			; SOURCE LINE # 430
	MOV  	DPTR,#m1data?269
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	?C?CLDPTR
	MOV  	R7,A
	MOV  	DPTR,#m1bakblock?249
	MOVX 	@DPTR,A
	MOV  	R4,A
;         m1eptype = m1data[1];
			; SOURCE LINE # 431
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	MOV  	DPTR,#m1eptype?250
	MOVX 	@DPTR,A
;         m1data += 2;
			; SOURCE LINE # 432
	MOV  	DPTR,#m1data?269+01H
	CLR  	A
	MOV  	B,#02H
	LCALL	?C?IILDX
;         m1block = (m1sector << 2) + m1block;
			; SOURCE LINE # 433
	MOV  	DPTR,#m1sector?262
	MOVX 	A,@DPTR
	ADD  	A,ACC
	ADD  	A,ACC
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,R6
	MOVX 	@DPTR,A
;         m1bakblock = (m1sector << 2) + m1bakblock;
			; SOURCE LINE # 434
	MOV  	A,R6
	ADD  	A,R4
	MOV  	DPTR,#m1bakblock?249
	MOVX 	@DPTR,A
;         
;         if(len != 10)
			; SOURCE LINE # 436
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0193
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0AH
?C0193:
	JZ   	?C0088
;         {
			; SOURCE LINE # 437
;             cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 438
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
?C0225:
;             return 1;
			; SOURCE LINE # 439
	LJMP 	?C0250
;         }
			; SOURCE LINE # 440
?C0088:
;     
;         epvalue = buftolong86(m1data);
			; SOURCE LINE # 442
	LCALL	L?0264
	MOV  	DPTR,#epvalue?264
	LCALL	?C?LSTXDATA
;         
;         i = M500ReadValue(m1block, cmd, m1bakblock);
			; SOURCE LINE # 444
	MOV  	DPTR,#m1block?263
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#m1bakblock?249
	MOVX 	A,@DPTR
	MOV  	DPTR,#?_M500ReadValue?BYTE+04H
	MOVX 	@DPTR,A
	LCALL	_M500ReadValue
	MOV  	R6,#00H
	MOV  	DPTR,#i?270
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;         if(i != MI_OK)
			; SOURCE LINE # 445
	JZ   	?C0089
;         {
			; SOURCE LINE # 446
;             // error
;             cmd[0] = FAIL;
			; SOURCE LINE # 448
?C0226:
;             cmd[1] = i;
			; SOURCE LINE # 449
;             return 2;
			; SOURCE LINE # 450
	LJMP 	?C0248
;         }
			; SOURCE LINE # 451
?C0089:
;     
;         if(!m1eptype)    // lsb first ep
			; SOURCE LINE # 453
	MOV  	DPTR,#m1eptype?250
	MOVX 	A,@DPTR
	MOV  	DPTR,#cmd?245
	JNZ  	?C0090
;             oldepvalue = buftolong86(cmd);
			; SOURCE LINE # 454
	LCALL	L?0266
	SJMP 	?C0204
?C0090:
;         else            // msb first ep
;             oldepvalue = buftolong51(cmd);
			; SOURCE LINE # 456
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	_buftolong51
?C0204:
	MOV  	DPTR,#oldepvalue?265
	LCALL	?C?LSTXDATA
?C0091:
;         
;         epvalue += oldepvalue;
			; SOURCE LINE # 458
	MOV  	DPTR,#epvalue?264
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R0,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R3,A
	MOV  	A,R7
	ADD  	A,R3
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,R2
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,R1
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,R0
	MOV  	R4,A
	MOV  	DPTR,#epvalue?264
	LCALL	?C?LSTXDATA
;         
;         if(!m1eptype)    // lsb first ep
			; SOURCE LINE # 460
	MOV  	DPTR,#m1eptype?250
	MOVX 	A,@DPTR
	MOV  	DPTR,#epvalue?264
	JNZ  	?C0092
;             longtobuf86(epvalue, cmd);
			; SOURCE LINE # 461
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#cmd?245
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -