📄 fat.lis
字号:
039A E80F add R30,R24
039C F91F adc R31,R25
039E 4082 std z+0,R4
03A0 L37:
03A0 .dbline 97
03A0 C601 movw R24,R12
03A2 0196 adiw R24,1
03A4 6C01 movw R12,R24
03A6 L39:
03A6 .dbline 97
03A6 ; for (j=0;j<6;j++) File.Name[LongFilePtr++] = Entry.Win.Part2[j];
03A6 C601 movw R24,R12
03A8 8630 cpi R24,6
03AA E0E0 ldi R30,0
03AC 9E07 cpc R25,R30
03AE 10F3 brlo L36
03B0 .dbline 98
03B0 CC24 clr R12
03B2 DD24 clr R13
03B4 19C0 xjmp L44
03B6 L41:
03B6 .dbline 98
03B6 1501 movw R2,R10
03B8 C101 movw R24,R2
03BA 0196 adiw R24,1
03BC 5C01 movw R10,R24
03BE 02E0 ldi R16,2
03C0 10E0 ldi R17,0
03C2 9601 movw R18,R12
03C4 0E940000 xcall empy16s
03C8 F801 movw R30,R16
03CA CE01 movw R24,R28
03CC 8496 adiw R24,36
03CE E80F add R30,R24
03D0 F91F adc R31,R25
03D2 4080 ldd R4,z+0
03D4 5180 ldd R5,z+1
03D6 80E0 ldi R24,<_File
03D8 90E0 ldi R25,>_File
03DA F101 movw R30,R2
03DC E80F add R30,R24
03DE F91F adc R31,R25
03E0 4082 std z+0,R4
03E2 L42:
03E2 .dbline 98
03E2 C601 movw R24,R12
03E4 0196 adiw R24,1
03E6 6C01 movw R12,R24
03E8 L44:
03E8 .dbline 98
03E8 ; for (j=0;j<2;j++) File.Name[LongFilePtr++] = Entry.Win.Part3[j];
03E8 C601 movw R24,R12
03EA 8230 cpi R24,2
03EC E0E0 ldi R30,0
03EE 9E07 cpc R25,R30
03F0 10F3 brlo L41
03F2 .dbline 99
03F2 ; if (Entry.Win.Cnt & 0x40) File.Name[LongFilePtr++] = 0x00;
03F2 2884 ldd R2,y+8
03F4 26FE sbrs R2,6
03F6 DBC0 rjmp L29
03F8 .dbline 99
03F8 1501 movw R2,R10
03FA C101 movw R24,R2
03FC 0196 adiw R24,1
03FE 5C01 movw R10,R24
0400 80E0 ldi R24,<_File
0402 90E0 ldi R25,>_File
0404 F101 movw R30,R2
0406 E80F add R30,R24
0408 F91F adc R31,R25
040A 2224 clr R2
040C 2082 std z+0,R2
040E .dbline 100
040E ; }
040E CFC0 xjmp L29
0410 L28:
0410 .dbline 102
0410 ; else
0410 ; {
0410 .dbline 103
0410 ; if ((Entry.Dir.Name[0] != SLOT_DELETED) && ((Entry.Dir.Attributes & 0x0e) == 0x00))
0410 8885 ldd R24,y+8
0412 853E cpi R24,229
0414 09F4 brne X2
0416 C9C0 xjmp L48
0418 X2:
0418 8B89 ldd R24,y+19
041A 8E70 andi R24,14
041C 09F0 breq X3
041E C5C0 xjmp L48
0420 X3:
0420 .dbline 104
0420 ; {
0420 .dbline 105
0420 ; if (LongFileName == FALSE)
0420 EE20 tst R14
0422 E1F4 brne L51
0424 FF20 tst R15
0426 D1F4 brne L51
0428 X0:
0428 .dbline 106
0428 ; {
0428 .dbline 107
0428 CC24 clr R12
042A DD24 clr R13
042C 0FC0 xjmp L56
042E L53:
042E .dbline 107
042E CE01 movw R24,R28
0430 0896 adiw R24,8
0432 F601 movw R30,R12
0434 E80F add R30,R24
0436 F91F adc R31,R25
0438 2080 ldd R2,z+0
043A 80E0 ldi R24,<_File
043C 90E0 ldi R25,>_File
043E F601 movw R30,R12
0440 E80F add R30,R24
0442 F91F adc R31,R25
0444 2082 std z+0,R2
0446 L54:
0446 .dbline 107
0446 C601 movw R24,R12
0448 0196 adiw R24,1
044A 6C01 movw R12,R24
044C L56:
044C .dbline 107
044C ; for (j=0;j<8;j++) File.Name[j] = Entry.Dir.Name[j];
044C C601 movw R24,R12
044E 8830 cpi R24,8
0450 E0E0 ldi R30,0
0452 9E07 cpc R25,R30
0454 60F3 brlo L53
0456 .dbline 108
0456 ; File.Name[8] = 0x00;
0456 2224 clr R2
0458 20920C00 sts _File+8,R2
045C .dbline 109
045C ; }
045C L51:
045C .dbline 110
045C ; File.FirstClust = Entry.Dir.FirstClustHi;
045C 2C8C ldd R2,y+28
045E 3D8C ldd R3,y+29
0460 4424 clr R4
0462 5524 clr R5
0464 30920901 sts _File+260+1,R3
0468 20920801 sts _File+260,R2
046C 50920B01 sts _File+260+2+1,R5
0470 40920A01 sts _File+260+2,R4
0474 .dbline 111
0474 ; File.FirstClust = (File.FirstClust << 16) + Entry.Dir.FirstClustLo;
0474 2AA0 ldd R2,y+34
0476 3BA0 ldd R3,y+35
0478 4424 clr R4
047A 5524 clr R5
047C 80900A01 lds R8,_File+260+2
0480 90900B01 lds R9,_File+260+2+1
0484 60900801 lds R6,_File+260
0488 70900901 lds R7,_File+260+1
048C 4301 movw R8,R6
048E 6624 clr R6
0490 7724 clr R7
0492 620C add R6,R2
0494 731C adc R7,R3
0496 841C adc R8,R4
0498 951C adc R9,R5
049A 70920901 sts _File+260+1,R7
049E 60920801 sts _File+260,R6
04A2 90920B01 sts _File+260+2+1,R9
04A6 80920A01 sts _File+260+2,R8
04AA .dbline 112
04AA ; File.FileSize = Entry.Dir.FileSize;
04AA FE01 movw R30,R28
04AC 24A0 ldd R2,z+36
04AE 35A0 ldd R3,z+37
04B0 46A0 ldd R4,z+38
04B2 57A0 ldd R5,z+39
04B4 30920D01 sts _File+264+1,R3
04B8 20920C01 sts _File+264,R2
04BC 50920F01 sts _File+264+2+1,R5
04C0 40920E01 sts _File+264+2,R4
04C4 .dbline 113
04C4 ; File.Attr = Entry.Dir.Attributes;
04C4 2B88 ldd R2,y+19
04C6 20920701 sts _File+259,R2
04CA .dbline 114
04CA ; if ((File.FirstClust == 0) &&
04CA 40E0 ldi R20,0
04CC 50E0 ldi R21,0
04CE 60E0 ldi R22,0
04D0 70E0 ldi R23,0
04D2 6416 cp R6,R20
04D4 7506 cpc R7,R21
04D6 8606 cpc R8,R22
04D8 9706 cpc R9,R23
04DA 79F4 brne L67
04DC 822D mov R24,R2
04DE 8031 cpi R24,16
04E0 61F4 brne L67
04E2 .dbline 115
04E2 ; (File.Attr == ATTR_DIRECTORY)) File.FirstClust = 2; // Don't know why?
04E2 42E0 ldi R20,2
04E4 50E0 ldi R21,0
04E6 60E0 ldi R22,0
04E8 70E0 ldi R23,0
04EA 50930901 sts _File+260+1,R21
04EE 40930801 sts _File+260,R20
04F2 70930B01 sts _File+260+2+1,R23
04F6 60930A01 sts _File+260+2,R22
04FA L67:
04FA .dbline 116
04FA ; LongFileName = FALSE;
04FA EE24 clr R14
04FC FF24 clr R15
04FE .dbline 118
04FE ;
04FE ; if ((File.FirstClust == 0) && (File.Attr == ATTR_NORMAL)) return Files;
04FE 40E0 ldi R20,0
0500 50E0 ldi R21,0
0502 60E0 ldi R22,0
0504 70E0 ldi R23,0
0506 40900A01 lds R4,_File+260+2
050A 50900B01 lds R5,_File+260+2+1
050E 20900801 lds R2,_File+260
0512 30900901 lds R3,_File+260+1
0516 2416 cp R2,R20
0518 3506 cpc R3,R21
051A 4606 cpc R4,R22
051C 5706 cpc R5,R23
051E 39F4 brne L72
0520 20900701 lds R2,_File+259
0524 2220 tst R2
0526 19F4 brne L72
0528 .dbline 118
0528 0FA9 ldd R16,y+55
052A 18AD ldd R17,y+56
052C 8EC0 xjmp L14
052E L72:
052E .dbline 119
052E ; if ((Files >= From) && (Files < (From + Qte)) && (Display == TRUE)) DisplayFiles(&LinePtr);
052E 0FA8 ldd R0,y+55
0530 18AC ldd R1,y+56
0532 FE01 movw R30,R28
0534 E95B subi R30,185 ; addi 71
0536 FF4F sbci R31,255
0538 0081 ldd R16,z+0
053A 1181 ldd R17,z+1
053C 0016 cp R0,R16
053E 1106 cpc R1,R17
0540 D0F0 brlo L76
0542 1801 movw R2,R16
0544 FE01 movw R30,R28
0546 E75B subi R30,183 ; addi 73
0548 FF4F sbci R31,255
054A 0080 ldd R0,z+0
054C 1180 ldd R1,z+1
054E 200C add R2,R0
0550 311C adc R3,R1
0552 0FA8 ldd R0,y+55
0554 18AC ldd R1,y+56
0556 0214 cp R0,R2
0558 1304 cpc R1,R3
055A 68F4 brsh L76
055C FE01 movw R30,R28
055E E55B subi R30,181 ; addi 75
0560 FF4F sbci R31,255
0562 8081 ldd R24,z+0
0564 9181 ldd R25,z+1
0566 8130 cpi R24,1
0568 E0E0 ldi R30,0
056A 9E07 cpc R25,R30
056C 21F4 brne L76
056E .dbline 119
056E 8E01 movw R16,R28
0570 045D subi R16,212 ; offset = 44
0572 1F4F sbci R17,255
0574 6FD0 xcall _DisplayFiles
0576 L76:
0576 .dbline 120
0576 ; if (Files == (From + Qte - 1)) return Files;
0576 FE01 movw R30,R28
0578 E95B subi R30,185 ; addi 71
057A FF4F sbci R31,255
057C 8081 ldd R24,z+0
057E 9181 ldd R25,z+1
0580 FE01 movw R30,R28
0582 E75B subi R30,183 ; addi 73
0584 FF4F sbci R31,255
0586 0080 ldd R0,z+0
0588 1180 ldd R1,z+1
058A 800D add R24,R0
058C 911D adc R25,R1
058E 0197 sbiw R24,1
0590 0FA8 ldd R0,y+55
0592 18AC ldd R1,y+56
0594 0816 cp R0,R24
0596 1906 cpc R1,R25
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -