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

📄 system.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	CLR  	A
	LCALL	?C?CSTPTR
;                 cmd[1] = cmd[2];
			; SOURCE LINE # 240
	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,#02H
	LCALL	?C?CLDOPTR
	MOV  	DPTR,#01H
?C0153:
	LCALL	?C?CSTOPTR
;                 return 2;
			; SOURCE LINE # 241
	MOV  	R6,#00H
	MOV  	R7,#02H
	RET  	
;             }
			; SOURCE LINE # 242
;             
;         case CMD_RDMEM:
			; SOURCE LINE # 244
?C0038:
;             if(len != 10)
			; SOURCE LINE # 245
	MOV  	DPTR,#len?246
	MOVX 	A,@DPTR
	JNZ  	?C0113
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0AH
?C0113:
	JZ   	?C0039
;             {
			; SOURCE LINE # 246
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 247
?C0155:
;                 return 1;
			; SOURCE LINE # 248
	SJMP 	?C0157
;             }
			; SOURCE LINE # 249
?C0039:
;             if(memcmp(cmd+3, "rdmemff", 7) != 0)
			; SOURCE LINE # 250
	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,#03H
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	XCH  	A,R0
	MOV  	A,R1
	XCH  	A,R0
	MOV  	R4,A
	XCH  	A,R5
	MOV  	A,R3
	XCH  	A,R5
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_266)
	MOV  	R1,#LOW (?SC_266)
	MOV  	R6,#00H
	MOV  	R7,#07H
	LCALL	?C?MEMCMP
	MOV  	A,R7
	JZ   	?C0040
;             {
			; SOURCE LINE # 251
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 252
?C0156:
;                 return 1;
			; SOURCE LINE # 253
	SJMP 	?C0157
;             }
			; SOURCE LINE # 254
?C0040:
;             
;             for(ch=0x1c00; ch<0x1d00; ch++)
			; SOURCE LINE # 256
	MOV  	DPTR,#ch?248
	MOV  	A,#01CH
	MOVX 	@DPTR,A
	INC  	DPTR
	CLR  	A
	MOVX 	@DPTR,A
?C0041:
	MOV  	DPTR,#ch?248
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#09DH
	JNC  	?C0042
;             {
			; SOURCE LINE # 257
;                 uchar cc;
;                 cc = FlashRdByte(ch);
			; SOURCE LINE # 259
	LCALL	_FlashRdByte
	MOV  	DPTR,#cc?247
	MOV  	A,R7
	MOVX 	@DPTR,A
;                 ComWrite(&cc, 1);
			; SOURCE LINE # 260
	MOV  	R3,#01H
	MOV  	R2,#HIGH (cc?247)
	MOV  	R1,#LOW (cc?247)
	MOV  	R5,#01H
	MOV  	R4,#00H
	LCALL	_ComWrite
;             }
			; SOURCE LINE # 261
	MOV  	DPTR,#ch?248+01H
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	JNZ  	?C0041
	MOV  	DPTR,#ch?248
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
?C0114:
	SJMP 	?C0041
?C0042:
;             return 0;
			; SOURCE LINE # 262
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
	RET  	
;             
;         default:
			; SOURCE LINE # 264
?C0044:
;             cmd[0] = ERRORCMD;
			; SOURCE LINE # 265
?C0157:
	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  	A,#02H
	LCALL	?C?CSTPTR
;             return 1;
			; SOURCE LINE # 266
	MOV  	R6,#00H
	MOV  	R7,#01H
;     }
			; SOURCE LINE # 267
; }
			; SOURCE LINE # 268
?C0029:
	RET  	
; END OF _SecCommand

; 
; unsigned int SysCommand(unsigned char *cmd, int len)

	RSEG  ?PR?_SysCommand?SYSTEM
_SysCommand:
	USING	0
			; SOURCE LINE # 270
	MOV  	DPTR,#cmd?349
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R4
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 271
;     int ch;
;     unsigned char snr[4];
;     static unsigned char limitcnt = 0;
;     
;     ch = ParaRead(PARA_LIMIT);
			; SOURCE LINE # 276
	MOV  	R7,#0F7H
	LCALL	_ParaRead
	MOV  	DPTR,#ch?351
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     if(ch <= 0)
			; SOURCE LINE # 277
	SETB 	C
	SUBB 	A,#00H
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0045
;     {
			; SOURCE LINE # 278
;         ParaWrite(PARA_LIMIT, 1);
			; SOURCE LINE # 279
	MOV  	R5,#01H
	MOV  	R7,#0F7H
	LCALL	_ParaWrite
;         return 0;
			; SOURCE LINE # 280
	LJMP 	?C0159
;     }
			; SOURCE LINE # 281
?C0045:
;     
;     if((unsigned int)0xff != ch)
			; SOURCE LINE # 283
	MOV  	DPTR,#ch?351
	MOVX 	A,@DPTR
	JNZ  	?C0115
	INC  	DPTR
	MOVX 	A,@DPTR
	CPL  	A
?C0115:
	JZ   	?C0047
;     {
			; SOURCE LINE # 284
;         limitcnt ++;
			; SOURCE LINE # 285
	MOV  	DPTR,#limitcnt?353
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
;         if(limitcnt == 0)
			; SOURCE LINE # 286
	MOVX 	A,@DPTR
	JNZ  	?C0047
;         {
			; SOURCE LINE # 287
;             ch --;
			; SOURCE LINE # 288
	MOV  	DPTR,#ch?351+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FFH
	MOVX 	@DPTR,A
	MOV  	DPTR,#ch?351
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOVX 	@DPTR,A
;             ch = ParaWrite(PARA_LIMIT, (unsigned char)ch);
			; SOURCE LINE # 289
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R7,#0F7H
	LCALL	_ParaWrite
	MOV  	DPTR,#ch?351
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;             // ComWrite((unsigned char *)&ch+1, 1);
;         }
			; SOURCE LINE # 291
;     }
			; SOURCE LINE # 292
?C0047:
;     
;     switch(cmd[1])
			; SOURCE LINE # 294
	MOV  	DPTR,#cmd?349
	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
	CJNE 	A,#013H,?C0116
?C0116:
	JC   	$ + 5H
	LJMP 	?C0109
	MOV  	DPTR,#?C0117
	MOV  	R0,A
	ADD  	A,R0
	ADD  	A,R0
	JMP  	@A+DPTR
?C0117:
	LJMP 	?C0055
	LJMP 	?C0067
	LJMP 	?C0059
	LJMP 	?C0071
	LJMP 	?C0073
	LJMP 	?C0075
	LJMP 	?C0079
	LJMP 	?C0081
	LJMP 	?C0083
	LJMP 	?C0087
	LJMP 	?C0089
	LJMP 	?C0093
	LJMP 	?C0097
	LJMP 	?C0063
	LJMP 	?C0099
	LJMP 	?C0103
	LJMP 	?C0105
	LJMP 	?C0107
	LJMP 	?C0050
;     {
			; SOURCE LINE # 295
;         case CMD_SETBAUD:
			; SOURCE LINE # 296
?C0050:
;             if(len != 4)
			; SOURCE LINE # 297
	MOV  	DPTR,#len?350
	MOVX 	A,@DPTR
	JNZ  	?C0118
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#04H
?C0118:
	JZ   	?C0051
;             {
			; SOURCE LINE # 298
;                 cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 299
;                 return 1;
			; SOURCE LINE # 300
	LJMP 	?C0191
;             }
			; SOURCE LINE # 301
?C0051:
;             if((cmd[2] >= 6) || (cmd[3] >= 6))
			; SOURCE LINE # 302
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	MOV  	R5,A
	CLR  	C
	SUBB 	A,#06H
	JNC  	?C0053
	MOV  	DPTR,#03H
	LCALL	?C?CLDOPTR
	MOV  	R4,A
	CLR  	C
	SUBB 	A,#06H
	JC   	?C0052
?C0053:
;             {
			; SOURCE LINE # 303
;                 cmd[0] = ERRORCMD;
			; SOURCE LINE # 304
;                 return 1;
			; SOURCE LINE # 305
	LJMP 	?C0161
;             }
			; SOURCE LINE # 306
?C0052:
;             // cmd[3]: reserved for format
;             snr[0] = SUCCESS;
			; SOURCE LINE # 308
	CLR  	A
	MOV  	DPTR,#snr?352
	MOVX 	@DPTR,A
;             snr[1] = cmd[2];
			; SOURCE LINE # 309
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;             snr[2] = cmd[3];
			; SOURCE LINE # 310
	INC  	DPTR
	MOV  	A,R4
	MOVX 	@DPTR,A
;             if(CommSend(snr, 3))
			; SOURCE LINE # 311
	MOV  	R3,#01H
	MOV  	R2,#HIGH (snr?352)
	MOV  	R1,#LOW (snr?352)
	MOV  	R5,#03H
	MOV  	R4,#00H
	LCALL	_CommSend
	JNC  	?C0054
;             {
			; SOURCE LINE # 312
;                 delay(50);
			; SOURCE LINE # 313
	MOV  	R7,#032H
	MOV  	R6,#00H
	LCALL	_delay
;                 // if communicate success, change baudrate
;                 ComOpen(SYSCLOCK, baud[cmd[2]]);
			; SOURCE LINE # 315
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (baud)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (baud)
	MOV  	DPH,A
	LCALL	?C?LLDCODE
	MOV  	DPTR,#?_ComOpen?BYTE+04H
	LCALL	?C?LSTXDATA
	MOV  	R7,#00H
	MOV  	R6,#020H
	MOV  	R5,#01CH
	MOV  	R4,#00H
	LCALL	_ComOpen
;             }
			; SOURCE LINE # 316
?C0054:
;             return 0;
			; SOURCE LINE # 317
?C0159:
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
	RET  	
;             
;         case CMD_EJECTCARD:
			; SOURCE LINE # 319
?C0055:
;             if(len != 2)
			; SOURCE LINE # 320
	MOV  	DPTR,#len?350
	MOVX 	A,@DPTR
	JNZ  	?C0119
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#02H
?C0119:
	JZ   	?C0056
;             {
			; SOURCE LINE # 321
;                 cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 322
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
?C0160:
;                 return 1;
			; SOURCE LINE # 323
	LJMP 	?C0191
;             }
			; SOURCE LINE # 324
?C0056:
;             if(IccUserEject())
			; SOURCE LINE # 325
	LCALL	IccUserEject
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	JNC  	?C0057
;                 cmd[0] = SUCCESS;
			; SOURCE LINE # 326
	CLR  	A
	SJMP 	?C0163
?C0057:
;             else
;                 cmd[0] = FAIL;
			; SOURCE LINE # 328
	MOV  	A,#01H
?C0163:
	LCALL	?C?CSTPTR
?C0058:
;             return 1;
			; SOURCE LINE # 329
	LJMP 	?C0197
;         
;         case CMD_SETMODE:
			; SOURCE LINE # 331
?C0059:
;             if(len != 3)
			; SOURCE LINE # 332
	MOV  	DPTR,#len?350
	MOVX 	A,@DPTR
	JNZ  	?C0120
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#03H
?C0120:
	JZ   	?C0060
;             {
			; SOURCE LINE # 333
;                 cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 334
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
?C0162:
;                 return 1;
			; SOURCE LINE # 335
	LJMP 	?C0191
;             }
			; SOURCE LINE # 336
?C0060:
;             fLed = cmd[2] & F_LED;
			; SOURCE LINE # 337
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	MOV  	R7,A
	MOV  	C,ACC.6
	MOV  	fLed,C
;             fTCBeep = cmd[2] & F_BOTC;
			; SOURCE LINE # 338
	MOV  	C,ACC.1
	MOV  	fTCBeep,C
;             fRFCBeep = cmd[2] & F_BORFC;
			; SOURCE LINE # 339
	RRC  	A
	MOV  	fRFCBeep,C
;             InvPack = cmd[2] & F_CINV;
			; SOURCE LINE # 340
	MOV  	A,R7
	MOV  	C,ACC.2
	MOV  	InvPack,C
;             fNotice = cmd[2] & F_NOTICE;
			; SOURCE LINE # 341
	MOV  	C,ACC.3
	MOV  	fNotice,C
;             fStopOnACK = cmd[2] & F_SNOA;
			; SOURCE LINE # 342
	MOV  	C,ACC.4
	MOV  	fStopOnACK,C
;             fAutoSearchCard = cmd[2] & F_ASC;
			; SOURCE LINE # 343
	MOV  	C,ACC.5
	MOV  	fAutoSearchCard,C
; 
;             if(ParaWrite(PARA_SWITCHS, cmd[2]) == cmd[2])
			; SOURCE LINE # 345
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	MOV  	R5,A
	MOV  	R7,#0FEH
	LCALL	_ParaWrite
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#02H
	LCALL	?C?CLDOPTR
	XRL  	A,R7
	JNZ  	?C0121
	MOV  	A,R6
?C0121:
	JNZ  	?C0061
;             {
			; SOURCE LINE # 346
;                 cmd[0] = SUCCESS;
			; SOURCE LINE # 347
;             }
			; SOURCE LINE # 348
	SJMP 	?C0166
?C0061:
;             else
;             {
			; SOURCE LINE # 350
;                 cmd[0] = FAIL;
			; SOURCE LINE # 351
	MOV  	A,#01H
?C0166:
	LCALL	?C?CSTPTR
;             }
			; SOURCE LINE # 352
?C0062:
;             return 1;
			; SOURCE LINE # 353
?C0164:
	LJMP 	?C0197
;             
;         case CMD_GETMODE:
			; SOURCE LINE # 355
?C0063:
;             if(len != 2)
			; SOURCE LINE # 356
	MOV  	DPTR,#len?350
	MOVX 	A,@DPTR
	JNZ  	?C0122
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#02H
?C0122:
	JZ   	?C0064
;             {
			; SOURCE LINE # 357
;                 cmd[0] = ERRORCMDLEN;
			; SOURCE LINE # 358
	MOV  	DPTR,#cmd?349
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR

⌨️ 快捷键说明

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