📄 fat16.lst
字号:
215 ; param _Name assigned to ?_GetFileID+0
216 0000 _GetFileID$Name set ?_GetFileID
217 ; _DirStart assigned to ?a_GetEmptyDIR+6
218 0000 _GetEmptyDIR$DirStart set ?a_GetEmptyDIR+6
219 ; _i assigned to ?a_GetEmptyDIR+4
220 0000 _GetEmptyDIR$i set ?a_GetEmptyDIR+4
221 ; _ID assigned to ?a_GetEmptyDIR+2
222 0000 _GetEmptyDIR$ID set ?a_GetEmptyDIR+2
223 ; _DirSecCut assigned to ?a_GetEmptyDIR+0
224 0000 _GetEmptyDIR$DirSecCut set ?a_GetEmptyDIR
225 ; _SecID assigned to ?a_WriteFAT+2
226 0000 _WriteFAT$SecID set ?a_WriteFAT+2
227 ; _RAM assigned to ?a_WriteFAT+0
228 0000 _WriteFAT$RAM set ?a_WriteFAT
229 ; param _Value assigned to ?_WriteFAT+2
230 0000 _WriteFAT$Value set ?_WriteFAT+2
231 ;fat16.c: 139: void WriteFAT(uint16 Index, uint1
+ 6 Value)
232 ;fat16.c: 141: {
233 ; param _Index assigned to ?_WriteFAT+0
234 0000 _WriteFAT$Index set ?_WriteFAT
235 ; _RAM assigned to ?a_ReadFAT+0
236 0000 _ReadFAT$RAM set ?a_ReadFAT
237 ;fat16.c: 128: uint16 ReadFAT(uint16 Index)
238 ;fat16.c: 130: {
239 ; param _Index assigned to ?_ReadFAT+0
240 0000 _ReadFAT$Index set ?_ReadFAT
241 ;fat16.c: 120: uint32 ClusConvLBA(uint16 ClusID)
242 ;fat16.c: 122: {
243 ; param _ClusID assigned to ?_ClusConvLBA+
+ 0
244 0000 _ClusConvLBA$ClusID set ?_ClusConvLBA
245 ; _BPB assigned to ?a_ReadBPB+0
246 0000 _ReadBPB$BPB set ?a_ReadBPB
247 ; param _size assigned to ?_EmptyBytes+2
248 0000 _EmptyBytes$size set ?_EmptyBytes+2
249 ;fat16.c: 63: void EmptyBytes(void* D, uint16 si
+ ze)
250 ;fat16.c: 65: {
251 ; param _D assigned to ?_EmptyBytes+0
252 0000 _EmptyBytes$D set ?_EmptyBytes
253 ; param _Size assigned to ?_IsEqual+4
254 0000 _IsEqual$Size set ?_IsEqual+4
255 ; param _B assigned to ?_IsEqual+2
256 0000 _IsEqual$B set ?_IsEqual+2
257 4002 _CopyBytes:
258 4002 FFFF dw 65535
259 4004 f4522:
260 0000
261 ;fat16.c: 45: uint8 *s = S, *d = D;
262 4004 C0F1 FFF3 movff ?_CopyBytes,prodl
263 4008 C0F2 FFF4 movff ?_CopyBytes+1,prodh
264 400C C0F3 FFD9 movff ?_CopyBytes+2,fsr2l
265 4010 C0F4 FFDA movff ?_CopyBytes+3,fsr2h
266 ;fat16.c: 46: uint16 i;
267 4014 6AF6 clrf tblptrl,c
268 4016 6AF7 clrf tblptrh,c
269 4018 l12:
270 4018 0100 movlb __Lparam shr (0+8)
271 401A 51F6 movf (?_CopyBytes+5)^(__Lparam& (0+65280)),w
272 401C 5CF7 subwf tblptrh,w,c
273 401E E102 bnz u15
274 4020 51F5 movf (?_CopyBytes+4)^(__Lparam& (0+65280)),w
275 4022 5CF6 subwf tblptrl,w,c
276 4024 u15:
277 4024 B0D8 btfsc status,0,c
278 4026 D012 goto u10
279 ;fat16.c: 48: *d++ = *s++;
280 4028 CFF3 FFE1 movff prodl,fsr1l
281 402C CFF4 FFE2 movff prodh,fsr1h
282 4030 4AF3 infsnz prodl,f,c
283 4032 2AF4 incf prodh,f,c
284 4034 CFD9 FFE9 movff fsr2l,fsr0l
285 4038 CFDA FFEA movff fsr2h,fsr0h
286 403C 4AD9 infsnz fsr2l,f,c
287 403E 2ADA incf fsr2h,f,c
288 4040 CFE7 FFEF movff indf1,indf0
289 4044 2AF6 incf tblptrl,f,c
290 4046 0E00 movlw 0
291 4048 22F7 addwfc tblptrh,f,c
292 404A D7E6 goto l12
293 404C u10:
294 ;fat16.c: 49: }
295 404C 0012 return
296 404E FFFF dw 65535
297 4050 D7D9 goto f4522
298 ;fat16.c: 52: uint8 IsEqual(void* A, void* B, ui
+ nt8 Size)
299 ;fat16.c: 54: {
300 ; param _A assigned to ?_IsEqual+0
301 4052 00C5 dw ?_IsEqual
302 4054 _IsEqual:
303 4054 FFFF dw 65535
304 4056 f4532:
305 0000
306 ;fat16.c: 55: uint8 i, *a = A, *b = B;
307 4056 C0C5 FFF6 movff ?_IsEqual,tblptrl
308 405A C0C6 FFF7 movff ?_IsEqual+1,tblptrh
309 405E C0C7 FFF3 movff ?_IsEqual+2,prodl
310 4062 C0C8 FFF4 movff ?_IsEqual+3,prodh
311 ;fat16.c: 56: for(i = 0; i < Size; i++)
312 4066 6AD9 clrf fsr2l,c
313 4068 l17:
314 4068 0100 movlb __Lparam shr (0+8)
315 406A 51C9 movf (?_IsEqual+4)^(__Lparam& (0+65280)),w
316 406C 5CD9 subwf fsr2l,w,c
317 406E B0D8 btfsc status,0,c
318 4070 D016 goto u30
319 ;fat16.c: 57: if(a[i] != b[i])
320 4072 50D9 movf fsr2l,w,c
321 4074 24F3 addwf prodl,w,c
322 4076 6EE9 movwf fsr0l,c
323 4078 0E00 movlw 0
324 407A 20F4 addwfc prodh,w,c
325 407C 6EEA movwf fsr0h
326 407E 50EF movf indf0,w,c
327 4080 6E00 movwf btemp
328 4082 50D9 movf fsr2l,w,c
329 4084 24F6 addwf tblptrl,w,c
330 4086 6EE9 movwf fsr0l,c
331 4088 0E00 movlw 0
332 408A 20F7 addwfc tblptrh,w,c
333 408C 6EEA movwf fsr0h
334 408E 50EF movf indf0,w,c
335 4090 1800 xorwf btemp,w
336 4092 B4D8 btfsc status,2,c
337 4094 D002 goto l18
338 ;fat16.c: 58: return 0;
339 4096 0E00 movlw 0
340 4098 D003 goto l13
341 409A l18:
342 ;fat16.c: 59: return 1;
343 409A 2AD9 incf fsr2l,f,c
344 409C D7E5 goto l17
345 409E u30:
346 409E 0E01 movlw 1
347 ;fat16.c: 60: }
348 40A0 l13:
349 40A0 0012 return
350 40A2 FFFF dw 65535
351 40A4 D7D8 goto f4532
352 40A6 00E5 dw ?_EmptyBytes
353 40A8 _EmptyBytes:
354 40A8 FFFF dw 65535
355 40AA f4542:
356 0000
357 ;fat16.c: 66: uint16 i;
358 40AA C0E5 FFE1 movff ?_EmptyBytes,fsr1l
359 40AE C0E6 FFE2 movff ?_EmptyBytes+1,fsr1h
360 ;fat16.c: 68: for(i = 0; i < size; i++)
361 40B2 6AF3 clrf prodl,c
362 40B4 6AF4 clrf prodh,c
363 40B6 l23:
364 40B6 0100 movlb __Lparam shr (0+8)
365 40B8 51E8 movf (?_EmptyBytes+3)^(__Lparam& (0+65280)),w
366 40BA 5CF4 subwf prodh,w,c
367 40BC E102 bnz u45
368 40BE 51E7 movf (?_EmptyBytes+2)^(__Lparam& (0+65280)),w
369 40C0 5CF3 subwf prodl,w,c
370 40C2 u45:
371 40C2 B0D8 btfsc status,0,c
372 40C4 D00B goto u40
373 ;fat16.c: 69: {
374 ;fat16.c: 70: *data++ = 0;
375 40C6 CFE1 FFE9 movff fsr1l,fsr0l
376 40CA CFE2 FFEA movff fsr1h,fsr0h
377 40CE 4AE1 infsnz fsr1l,f,c
378 40D0 2AE2 incf fsr1h,f,c
379 40D2 6AEF clrf indf0,c
380 ;fat16.c: 71: }
381 40D4 2AF3 incf prodl,f,c
382 40D6 0E00 movlw 0
383 40D8 22F4 addwfc prodh,f,c
384 40DA D7ED goto l23
385 40DC u40:
386 ;fat16.c: 72: }
387 40DC 0012 return
388 40DE FFFF dw 65535
389 40E0 D7E4 goto f4542
390 ;fat16.c: 76: void ReadBPB(void)
391 ;fat16.c: 78: {
392 40E2 _ReadBPB:
393 40E2 FFFF dw 65535
394 40E4 f4552:
395 0000
396 ;fat16.c: 79: FAT_BPB* BPB = (FAT_BPB*)buffer;
397 40E4 0100 movlb __Lparam shr (0+8)
398 40E6 0EAD movlw low _buffer
399 40E8 6F7B movwf ?a_ReadBPB^(__Lparam& (0+65280))
400 40EA 0E03 movlw high _buffer
401 40EC 6F7C movwf (?a_ReadBPB+1)^(__Lparam& (0+65280))
402 ;fat16.c: 81: sl811_read_sector(0x00000000, buff
+ er);
403 40EE 6BF3 clrf ?_sl811_read_sector^(__Lparam& (0+65280))
404 40F0 6BF4 clrf (?_sl811_read_sector+1)^(__Lparam& (0+6528
+ 0))
405 40F2 6BF5 clrf (?_sl811_read_sector+2)^(__Lparam& (0+6528
+ 0))
406 40F4 6BF6 clrf (?_sl811_read_sector+3)^(__Lparam& (0+6528
+ 0))
407 40F6 0EAD movlw low _buffer
408 40F8 6FF7 movwf (?_sl811_read_sector+4)^(__Lparam& (0+652
+ 80))
409 40FA 0E03 movlw high _buffer
410 40FC 6FF8 movwf (?_sl811_read_sector+5)^(__Lparam& (0+652
+ 80))
411 40FE EC5E F00A call _sl811_read_sector ;wreg free
412 ;fat16.c: 83: BPB_BytesPerSec = BPB->BPB_BytesPe
+ rSec;
413 ; _BPB loaded to fsr1
414 4102 C07B FFE1 movff ?a_ReadBPB,fsr1l
415 4106 C07C FFE2 movff ?a_ReadBPB+1,fsr1h
416 410A EE00 F00B lfsr 0,11
417 410E 50E1 movf fsr1l,w,c
418 4110 26E9 addwf fsr0l,f,c
419 4112 50E2 movf fsr1h,w,c
420 4114 22EA addwfc fsr0h,f,c
421 4116 CFEE F000 movff postinc0,btemp
422 411A CFED F001 movff postdec0,btemp+1
423 411E C000 F03B movff btemp,_BPB_BytesPerSec
424 4122 C001 F03C movff btemp+1,_BPB_BytesPerSec+1
425 ;fat16.c: 84: BPB_SecPerClus = BPB->BPB_SecPerCl
+ us;
426 4126 EE00 F00D lfsr 0,13
427 412A 50E1 movf fsr1l,w,c
428 412C 26E9 addwf fsr0l,f,c
429 412E 50E2 movf fsr1h,w,c
430 4130 22EA addwfc fsr0h,f,c
431 4132 CFEF F1B1 movff indf0,_BPB_SecPerClus
432 ;fat16.c: 85: BPB_RsvdSecCnt = BPB->BPB_RsvdSecC
+ nt;
433 4136 EE00 F00E lfsr 0,14
434 413A 50E1 movf fsr1l,w,c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -