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

📄 f34x_msd_file_system.src

📁 USB读写SD卡例程
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	USING	0
L?0167:
	MOV  	DPTR,#0BH
	LCALL	?C?LLDOPTR
	MOV  	A,R7
	MOV  	R3,A
	MOV  	A,R6
	ANL  	A,#01H
	MOV  	R2,A
	CLR  	A
	CLR  	C
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,#02H
	SUBB 	A,R2
	MOV  	R6,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	R5,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	R4,A
	RET  	
L?0168:
	USING	0
L?0169:
	MOV  	DPTR,#02H
	LCALL	?C?LLDOPTR0
	MOV  	A,R7
	ADD  	A,R3
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,R2
L?0170:
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,R1
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,R0
	MOV  	R4,A
	RET  	
L?0172:
	USING	0
	MOV  	A,R7
	ADD  	A,#0FFH
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,#0FFH
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,#0FFH
	MOV  	R4,A
L?0173:
	CLR  	A
	MOV  	R3,A
	MOV  	R2,#02H
	MOV  	R1,A
	MOV  	R0,A
	LJMP 	?C?ULDIV
L?0174:
	USING	0
L?0175:
	MOV  	DPTR,#07H
	LJMP 	?C?PLDOPTR
L?0176:
	USING	0
L?0177:
	MOV  	DPL,R7
	MOV  	DPH,R6
L?0178:
	LCALL	?C?ILDOPTR
	MOV  	R7,A
	MOV  	R6,B
	RET  	
L?0179:
	USING	0
	MOV  	DPTR,#from?452
L?0180:
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
L?0181:
	MOV  	R5,A
L?0182:
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	RET  	
L?0183:
	USING	0
L?0184:
	MOV  	DPTR,#from?452
	MOVX 	A,@DPTR
	MOV  	R0,A
	INC  	DPTR
L?0185:
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	RET  	
L?0186:
	USING	0
	MOV  	DPTR,#from?558
L?0187:
	XCH  	A,R4
	MOV  	A,R6
	XCH  	A,R4
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	MOVX 	A,@DPTR
	MOV  	R6,#00H
	ADD  	A,R5
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,R4
	RET  	
L?0188:
	USING	0
L?0189:
	MOV  	DPTR,#0FH
	LJMP 	?C?LLDOPTR
L?0190:
	USING	0
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
L?0191:
	MOV  	A,#01H
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#HIGH (Scratch)
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#LOW (Scratch)
	MOVX 	@DPTR,A
	CLR  	A
	RET  	
L?0192:
	USING	0
	MOV  	DPTR,#04H
	MOV  	B,A
	LJMP 	?C?ISTOPTR
L?0193:
	USING	0
L?0194:
	MOV  	DPTR,#0BH
	LJMP 	?C?LLDOPTR0
L?0195:
	USING	0
	MOV  	DPTR,#MBR+010H
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R4,#00H
	MOV  	DPTR,#nr?453
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	LJMP 	?C?UIDIV
L?0196:
	USING	0
	INC  	DPTR
	INC  	DPTR
	MOVX 	A,@DPTR
L?0197:
	MOV  	DPTR,#0BH
	LJMP 	?C?LLDOPTR
L?0198:
	USING	0
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
L?0199:
	ADD  	A,#0BH
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
	RET  	
L?0200:
	USING	0
L?0201:
	CLR  	A
	MOV  	B,A
	LJMP 	?C?ISTOPTR
L?0202:
	USING	0
L?0203:
	MOV  	R3,#01H
	MOV  	R2,#HIGH (findinfo)
	MOV  	R1,#LOW (findinfo)
	RET  	
L?0204:
	USING	0
L?0205:
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	RET  	
L?0206:
	USING	0
L?0207:
	MOV  	DPTR,#MBR+010H
	MOVX 	A,@DPTR
	MOV  	R3,A
	CLR  	A
	MOV  	R2,A
	MOV  	R1,A
	MOV  	R0,A
	RET  	
L?0208:
	USING	0
	MOV  	R0,A
	CLR  	C
	MOV  	A,R7
	SUBB 	A,R3
	MOV  	R3,A
	MOV  	A,R6
	SUBB 	A,R2
	MOV  	R2,A
	MOV  	A,R5
	SUBB 	A,R1
	MOV  	R1,A
	MOV  	A,R4
	SUBB 	A,R0
	MOV  	R0,A
	RET  	
L?0209:
	USING	0
	MOV  	R0,A
	CLR  	C
	MOV  	A,R7
	SUBB 	A,R3
	MOV  	R7,A
	MOV  	A,R6
	SUBB 	A,R2
	MOV  	R6,A
	MOV  	A,R5
	SUBB 	A,R1
	MOV  	R5,A
	MOV  	A,R4
	SUBB 	A,R0
	MOV  	R4,A
	RET  	
L?0210:
	USING	0
	MOVX 	A,@DPTR
	MOV  	DPTR,#index?562
L?0211:
	ADD  	A,ACC
	MOV  	R7,A
	MOVX 	A,@DPTR
	RLC  	A
	MOV  	R6,A
	RET  	
L?0212:
	USING	0
	LCALL	?C?ILDOPTR
	ADD  	A,#LOW (Scratch)
	MOV  	R1,A
	MOV  	A,#HIGH (Scratch)
	ADDC 	A,B
	MOV  	R2,A
	MOV  	R3,#01H
	RET  	
L?0213:
	USING	0
	LCALL	?C?CSTOPTR
L?0214:
	MOV  	DPTR,#i?146
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	RET  	
L?0215:
	USING	0
L?0216:
	MOV  	DPTR,#from?452
	LJMP 	?C?LSTXDATA
L?0217:
	USING	0
	MOV  	A,R6
	ANL  	A,#01H
	MOV  	R6,A
	MOV  	A,#LOW (Scratch)
	ADD  	A,R7
	MOV  	R1,A
	MOV  	A,#HIGH (Scratch)
	ADDC 	A,R6
	RET  	
L?0218:
	USING	0
	LCALL	?C?LLDPTR0
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	A,R3
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,R2
	ADDC 	A,R6
	RET  	
L?0219:
	USING	0
	MOV  	DPL,R7
	MOV  	DPH,R6
	MOV  	A,R4
	MOV  	B,R5
	LJMP 	?C?ISTOPTR
L?0220:
	USING	0
	MOV  	DPTR,#index?668
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
	RET  	
L?0221:
	USING	0
	LCALL	?C?ILDPTR
	MOV  	R7,A
	MOV  	R6,B
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	A,R4
	RET  	
L?0222:
	USING	0
	MOV  	R7,A
	LCALL	?C?ULDIV
	MOV  	A,R7
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	RET  	
L?0223:
	USING	0
L?0224:
	MOV  	DPTR,#i?146
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	RET  	
L?0225:
	USING	0
L?0226:
	MOV  	DPTR,#02H
	LJMP 	?C?LSTOPTR
L?0227:
	USING	0
L?0228:
	MOV  	DPTR,#0BH
	LJMP 	?C?CLDOPTR
L?0229:
	USING	0
L?0230:
	MOV  	DPTR,#013H
	LJMP 	?C?CLDOPTR
; END OF Com0097

; static BYTE file_name_match(char* filename,char* direntryname)

	RSEG  ?PR?_file_name_match?F34X_MSD_FILE_SYSTEM
_file_name_match:
	USING	0
			; SOURCE LINE # 57
	MOV  	DPTR,#filename?040
	MOV  	A,R3
	LCALL	L?0165
; {
			; SOURCE LINE # 58
;   xdata BYTE i,j = filename[0];
			; SOURCE LINE # 59
	LCALL	?C?CLDPTR
	MOV  	DPTR,#j?043
	MOVX 	@DPTR,A
;   for(i=0;i<8;i++) {
			; SOURCE LINE # 60
	CLR  	A
	MOV  	DPTR,#i?042
	MOVX 	@DPTR,A
?C0001:
	MOV  	DPTR,#i?042
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#08H
	JNC  	?C0002
;     if(direntryname[i] == ' ' && (filename[i] == '\0' || filename[i] == '.')) 
			; SOURCE LINE # 61
	MOV  	DPTR,#direntryname?041
	LCALL	L?0154
	MOV  	DPL,R7
	LCALL	L?0162
	MOV  	R7,A
	XRL  	A,#020H
	JNZ  	?C0004
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	LCALL	L?0158
	MOV  	R6,A
	JZ   	?C0005
	CJNE 	A,#02EH,?C0004
?C0005:
; 	{
			; SOURCE LINE # 62
; 	  if(!(j == '.' && filename[i] == '.')) 
			; SOURCE LINE # 63
	MOV  	DPTR,#j?043
	MOVX 	A,@DPTR
	XRL  	A,#02EH
	JNZ  	?C0002
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	LCALL	L?0158
	CJNE 	A,#02EH,?C0002
; 	      break;
			; SOURCE LINE # 64
; 	}
			; SOURCE LINE # 65
?C0004:
;     if(tolower(direntryname[i])!=filename[i]) 
			; SOURCE LINE # 66
	LCALL	_tolower
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	LCALL	L?0159
	XRL  	A,R7
	JZ   	?C0003
;       return 0;
			; SOURCE LINE # 67
	MOV  	R7,#00H
	RET  	
;   }
			; SOURCE LINE # 68
?C0003:
	MOV  	DPTR,#i?042
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	LJMP 	?C0001
?C0002:
;   j = i+1;
			; SOURCE LINE # 69
	MOV  	DPTR,#i?042
	MOVX 	A,@DPTR
	INC  	A
	INC  	DPTR
	MOVX 	@DPTR,A
;   for(i = 8; i < 11; i++) {
			; SOURCE LINE # 70
	MOV  	DPTR,#i?042
	MOV  	A,#08H
	MOVX 	@DPTR,A
?C0010:
	MOV  	DPTR,#i?042
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#0BH
	JC   	$ + 5H
	LJMP 	?C0011
;     if( filename[j] == '\0' && direntryname[i] != ' ') 
			; SOURCE LINE # 71
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	MOV  	DPTR,#j?043
	LCALL	L?0160
	MOV  	R6,A
	JNZ  	?C0013
	MOV  	DPTR,#direntryname?041
	LCALL	L?0154
	MOV  	DPL,R7
	LCALL	L?0162
	XRL  	A,#020H
	JZ   	?C0013
;       return 0;
			; SOURCE LINE # 72
	MOV  	R7,#00H
	RET  	
?C0013:
;     if( direntryname[i] == ' ' && (filename[j] == '\0' || filename[j] == '.' 
			; SOURCE LINE # 73
	MOV  	DPTR,#direntryname?041
	LCALL	L?0154
	INC  	DPTR
	LCALL	L?0160
	XRL  	A,#020H
	JNZ  	?C0014
	MOV  	A,R6
	JZ   	?C0011
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	MOV  	DPTR,#j?043
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	L?0161
	XRL  	A,#02EH
	JZ   	?C0011
	MOV  	A,R7
	ADD  	A,#0FFH
	MOV  	R7,A
	CLR  	A
	ADDC 	A,#0FFH
	MOV  	R6,A
	MOV  	DPL,R7
	MOV  	DPH,R6
	LCALL	?C?CLDOPTR
	JZ   	?C0011
;         || filename[j-1] == '\0'))
;       break;
			; SOURCE LINE # 75
?C0014:
;     if(tolower(direntryname[i]) != filename[j]) 
			; SOURCE LINE # 76
	MOV  	DPTR,#direntryname?041
	LCALL	L?0154
	INC  	DPTR
	LCALL	L?0160
	MOV  	R7,A
	LCALL	_tolower
	MOV  	DPTR,#filename?040
	LCALL	L?0154
	MOV  	DPTR,#j?043

⌨️ 快捷键说明

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