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

📄 para.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	MOVX 	A,@DPTR
	JNZ  	?C0060
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0FCH
?C0060:
	JNZ  	?C0035
;     {
			; SOURCE LINE # 215
;         FlashWrByte(ParaStart+SECTOR_SIZE+1, H_USING);
			; SOURCE LINE # 216
	MOV  	DPTR,#ParaStart
	INC  	A
	MOVC 	A,@A+DPTR
	ADD  	A,#081H
	MOV  	R7,A
	CLR  	A
	MOVC 	A,@A+DPTR
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R5,#0F0H
	LCALL	_FlashWrByte
;         ComWrite("Use S1.\r\n", 9);
			; SOURCE LINE # 217
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_68)
	MOV  	R1,#LOW (?SC_68)
	MOV  	R5,#09H
?C0073:
;     }
			; SOURCE LINE # 218
	SJMP 	?C0074
?C0035:
;     else if((s1flag == H_ERASED) && (s0flag == H_COPYING))
			; SOURCE LINE # 219
	MOV  	DPTR,#s1flag?254
	MOVX 	A,@DPTR
	JNZ  	?C0061
	INC  	DPTR
	MOVX 	A,@DPTR
?C0061:
	JNZ  	?C0037
	MOV  	DPTR,#s0flag?252
	MOVX 	A,@DPTR
	JNZ  	?C0062
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0FCH
?C0062:
	JNZ  	?C0037
;     {
			; SOURCE LINE # 220
;         FlashWrByte(ParaStart+1, H_USING);
			; SOURCE LINE # 221
	MOV  	DPTR,#ParaStart
	INC  	A
	MOVC 	A,@A+DPTR
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	MOVC 	A,@A+DPTR
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R5,#0F0H
	LCALL	_FlashWrByte
;         ComWrite("Use S0.\r\n", 9);
			; SOURCE LINE # 222
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_78)
	MOV  	R1,#LOW (?SC_78)
	MOV  	R5,#09H
?C0074:
	MOV  	R4,#00H
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 223
	SJMP 	?C0034
?C0037:
;     else if((s0flag != H_USING) && (s1flag != H_USING))
			; SOURCE LINE # 224
	MOV  	DPTR,#s0flag?252
	MOVX 	A,@DPTR
	JNZ  	?C0063
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0F0H
?C0063:
	JZ   	?C0034
	MOV  	DPTR,#s1flag?254
	MOVX 	A,@DPTR
	JNZ  	?C0064
	INC  	DPTR
	MOVX 	A,@DPTR
	XRL  	A,#0F0H
?C0064:
	JZ   	?C0034
;     {
			; SOURCE LINE # 225
;         s0head = PARA_EMPTY;
			; SOURCE LINE # 226
	MOV  	DPTR,#s0head?251
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;         s1head = PARA_EMPTY;
			; SOURCE LINE # 227
	MOV  	DPTR,#s1head?253
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#0FFH
	MOVX 	@DPTR,A
;         ComWrite("Error, check again and format.\r\n", 32);
			; SOURCE LINE # 228
	MOV  	R3,A
	MOV  	R2,#HIGH (?SC_88)
	MOV  	R1,#LOW (?SC_88)
	MOV  	R5,#020H
	MOV  	R4,#00H
	LCALL	_ComWrite
;         goto checkhead;
			; SOURCE LINE # 229
	LJMP 	?ParaMemInit?checkhead
;     }
			; SOURCE LINE # 230
?C0034:
;     
;     return ch;
			; SOURCE LINE # 232
	MOV  	DPTR,#ch?255
	MOVX 	A,@DPTR
	MOV  	R7,A
; }
			; SOURCE LINE # 233
?C0040:
	RET  	
; END OF ParaMemInit

; 
; // set the initialzation values
; unsigned char ParaInit(void)

	RSEG  ?PR?ParaInit?PARA
ParaInit:
	USING	0
			; SOURCE LINE # 236
; {
			; SOURCE LINE # 237
;     if(ParaMemInit() >= 2)
			; SOURCE LINE # 238
	LCALL	ParaMemInit
	MOV  	A,R7
	CLR  	C
	SUBB 	A,#02H
	JC   	?C0041
;     {
			; SOURCE LINE # 239
;         ComWrite("New mem or mem error, use default values. Writing...\r\n", 54);
			; SOURCE LINE # 240
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_121)
	MOV  	R1,#LOW (?SC_121)
	MOV  	R5,#036H
	MOV  	R4,#00H
	LCALL	_ComWrite
;         ParaWrite(PARA_SWITCHS, F_BORFC | F_BOTC | F_NOTICE | F_ASC | F_SNOA | F_LED);
			; SOURCE LINE # 241
	MOV  	R5,#07BH
	MOV  	R7,#0FEH
	LCALL	_ParaWrite
;         ParaWrite(PARA_LORC, 12);
			; SOURCE LINE # 242
	MOV  	R5,#0CH
	MOV  	R7,#0FDH
	LCALL	_ParaWrite
;         ParaWrite(PARA_LOTC, 25);
			; SOURCE LINE # 243
	MOV  	R5,#019H
	MOV  	R7,#0FCH
	LCALL	_ParaWrite
;         ParaWrite(PARA_LOBC, 0xff);
			; SOURCE LINE # 244
	MOV  	R5,#0FFH
	MOV  	R7,#0FBH
	LCALL	_ParaWrite
;         ParaWrite(PARA_LONC, 0);
			; SOURCE LINE # 245
	CLR  	A
	MOV  	R5,A
	MOV  	R7,#0FAH
	LCALL	_ParaWrite
;         ParaWrite(PARA_RFCCT, 20);
			; SOURCE LINE # 246
	MOV  	R5,#014H
	MOV  	R7,#0F9H
	LCALL	_ParaWrite
;         ParaWrite(PARA_RFRXGAIN, 2);
			; SOURCE LINE # 247
	MOV  	R5,#02H
	MOV  	R7,#0F8H
	LCALL	_ParaWrite
;         ParaWrite(PARA_LIMIT, 0xff);
			; SOURCE LINE # 248
	MOV  	R5,#0FFH
	MOV  	R7,#0F7H
	LCALL	_ParaWrite
;         ComWrite("Ok.\r\n", 5);
			; SOURCE LINE # 249
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_176)
	MOV  	R1,#LOW (?SC_176)
	MOV  	R5,#05H
	MOV  	R4,#00H
	LCALL	_ComWrite
;     }
			; SOURCE LINE # 250
?C0041:
;     
;     return 0;
			; SOURCE LINE # 252
	MOV  	R7,#00H
; }
			; SOURCE LINE # 253
?C0042:
	RET  	
; END OF ParaInit

; 
; /******************************************** internal functions ***************************************/
; 
; // copy parameters to next sector when one is full
; // dir: 1: sec 0 --> sect 1; 0: sec 1 --> sec 0
; static void ParaCopy(bit dir)

	RSEG  ?PR?ParaCopy?PARA
ParaCopy:
	USING	0
			; SOURCE LINE # 259
; {
			; SOURCE LINE # 260
;     unsigned int i0, i01, i1, i11;
;     unsigned int StartAddr;
;     unsigned char oldpara;
;     
;     // 1, check dir
;     if(dir)
			; SOURCE LINE # 266
	MOV  	DPTR,#ParaStart
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	R6,A
	MOV  	A,#01H
	MOVC 	A,@A+DPTR
	MOV  	R7,A
	JNB  	dir?456,?C0043
;     {
			; SOURCE LINE # 267
;         StartAddr = ParaStart + 2;
			; SOURCE LINE # 268
	ADD  	A,#02H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R4,A
	MOV  	DPTR,#StartAddr?461
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;         i0 = ParaStart + 2;
			; SOURCE LINE # 269
	MOV  	DPTR,#i0?457
	MOV  	A,R4
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;         i1 = ParaStart + SECTOR_SIZE + 2;
			; SOURCE LINE # 270
	MOV  	A,R7
	ADD  	A,#082H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPTR,#i1?459
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     }
			; SOURCE LINE # 271
	SJMP 	?C0044
?C0043:
;     else
;     {
			; SOURCE LINE # 273
;         StartAddr = ParaStart + SECTOR_SIZE + 2;
			; SOURCE LINE # 274
	ADD  	A,#082H
	MOV  	R5,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R4,A
	MOV  	DPTR,#StartAddr?461
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;         i1 = ParaStart + 2;
			; SOURCE LINE # 275
	MOV  	A,R7
	ADD  	A,#02H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	DPTR,#i1?459
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;         i0 = ParaStart + SECTOR_SIZE + 2;
			; SOURCE LINE # 276
	MOV  	DPTR,#i0?457
	MOV  	A,R4
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;     }
			; SOURCE LINE # 277
?C0044:
;     
;     i11 = i1;
			; SOURCE LINE # 279
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	INC  	DPTR
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;     i01 = i0;
			; SOURCE LINE # 280
	MOV  	DPTR,#i0?457
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	INC  	DPTR
	XCH  	A,R5
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
;     
;     // 2, if new sector not empty, erase
;     if(FlashRdByte(i1-1) != H_EMPTY)
			; SOURCE LINE # 283
	MOV  	A,R7
	ADD  	A,#0FFH
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	LCALL	_FlashRdByte
	MOV  	A,R7
	CPL  	A
	JZ   	?C0045
;         FlashErSector(i1-2);
			; SOURCE LINE # 284
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	MOV  	R7,A
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	LCALL	_FlashErSector
?C0045:
;     
;     // 3, write head 0 
;     if(FlashRdByte(i1-2) != PARA_HEAD)
			; SOURCE LINE # 287
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	MOV  	R7,A
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	LCALL	_FlashRdByte
	MOV  	A,R7
	XRL  	A,#055H
	JZ   	?C0046
;         FlashWrByte(i1-2, PARA_HEAD);
			; SOURCE LINE # 288
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	MOV  	R7,A
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	R5,#055H
	LCALL	_FlashWrByte
?C0046:
; 
;     // 4, write head 1 to show copying status
;     FlashWrByte(i1-1, H_COPYING);
			; SOURCE LINE # 291
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FFH
	MOV  	R7,A
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	R5,#0FCH
	LCALL	_FlashWrByte
;     
;     // 5, copy
;     for( ; i0<StartAddr+SECTOR_SIZE-2; i0+=2)
			; SOURCE LINE # 294
?C0047:
	MOV  	DPTR,#StartAddr?461+01H
	MOVX 	A,@DPTR
	ADD  	A,#07EH
	MOV  	R5,A
	MOV  	DPTR,#StartAddr?461
	MOVX 	A,@DPTR
	ADDC 	A,#00H
	MOV  	R4,A
	MOV  	DPTR,#i0?457
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,R5
	MOV  	A,R6
	SUBB 	A,R4
	JNC  	?C0048
;     {
			; SOURCE LINE # 295
;         oldpara = FlashRdByte(i0);
			; SOURCE LINE # 296
	LCALL	_FlashRdByte
;---- Variable 'oldpara?462' assigned to Register 'R5' ----
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
;         
;         if(oldpara == PARA_EMPTY)
			; SOURCE LINE # 298
	MOV  	A,R5
	CPL  	A
	JZ   	?C0048
;         {
			; SOURCE LINE # 299
;             break;
			; SOURCE LINE # 300
;         }
			; SOURCE LINE # 301
?C0050:
;         if(oldpara == PARA_ERASHED)
			; SOURCE LINE # 302
	MOV  	A,R5
	JZ   	?C0049
;         {
			; SOURCE LINE # 303
;             continue;
			; SOURCE LINE # 304
;         }
			; SOURCE LINE # 305
?C0051:
;         else
;         {
			; SOURCE LINE # 307
;             FlashWrByte(i1, oldpara);
			; SOURCE LINE # 308
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_FlashWrByte
;             oldpara = FlashRdByte(i0+1);
			; SOURCE LINE # 309
	MOV  	DPTR,#i0?457+01H
	MOVX 	A,@DPTR
	ADD  	A,#01H
	MOV  	R7,A
	MOV  	DPTR,#i0?457
	MOVX 	A,@DPTR
	ADDC 	A,#00H
	MOV  	R6,A
	LCALL	_FlashRdByte
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
;             i1 ++;
			; SOURCE LINE # 310
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	JNZ  	?C0065
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
?C0065:
;             FlashWrByte(i1, oldpara);
			; SOURCE LINE # 311
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_FlashWrByte
;             i1 ++;
			; SOURCE LINE # 312
	MOV  	DPTR,#i1?459+01H
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	JNZ  	?C0066
	MOV  	DPTR,#i1?459
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
?C0066:
;         }
			; SOURCE LINE # 313
;     }
			; SOURCE LINE # 314
?C0049:
	MOV  	DPTR,#i0?457+01H
	MOVX 	A,@DPTR
	ADD  	A,#02H
	MOVX 	@DPTR,A
	MOV  	DPTR,#i0?457
	MOVX 	A,@DPTR
	ADDC 	A,#00H
	MOVX 	@DPTR,A
	SJMP 	?C0047
?C0048:
;     
;     // 6, write head 1 of old sector to show erashed
;     FlashWrByte(i01-1, H_ERASED);
			; SOURCE LINE # 317
	MOV  	DPTR,#i01?458+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FFH
	MOV  	R7,A
	MOV  	DPTR,#i01?458
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	CLR  	A
	MOV  	R5,A
	LCALL	_FlashWrByte
;     // 7, write head 1 of new sector to show using it now
;     FlashWrByte(i11-1, H_USING);
			; SOURCE LINE # 319
	MOV  	DPTR,#i11?460+01H
	MOVX 	A,@DPTR
	ADD  	A,#0FFH
	MOV  	R7,A
	MOV  	DPTR,#i11?460
	MOVX 	A,@DPTR
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	R5,#0F0H
	LJMP 	_FlashWrByte
; END OF ParaCopy

	END

⌨️ 快捷键说明

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