📄 fat.lis
字号:
0598 11F4 brne L78
059A .dbline 120
059A 8001 movw R16,R0
059C 56C0 xjmp L14
059E L78:
059E .dbline 121
059E ; Files++;
059E 8FA9 ldd R24,y+55
05A0 98AD ldd R25,y+56
05A2 0196 adiw R24,1
05A4 98AF std y+56,R25
05A6 8FAB std y+55,R24
05A8 .dbline 122
05A8 ; }
05A8 02C0 xjmp L49
05AA L48:
05AA .dbline 123
05AA ; else LongFileName = FALSE;
05AA EE24 clr R14
05AC FF24 clr R15
05AE L49:
05AE .dbline 124
05AE ; }
05AE L29:
05AE .dbline 125
05AE L24:
05AE .dbline 89
05AE 8DA9 ldd R24,y+53
05B0 9EA9 ldd R25,y+54
05B2 8096 adiw R24,32
05B4 9EAB std y+54,R25
05B6 8DAB std y+53,R24
05B8 L26:
05B8 .dbline 89
05B8 20901B01 lds R2,_Boot+11
05BC 30901C01 lds R3,_Boot+11+1
05C0 0DA8 ldd R0,y+53
05C2 1EA8 ldd R1,y+54
05C4 0214 cp R0,R2
05C6 1304 cpc R1,R3
05C8 08F4 brsh X4
05CA 93CE xjmp L23
05CC X4:
05CC .dbline 126
05CC L19:
05CC .dbline 86
05CC 41E0 ldi R20,1
05CE 50E0 ldi R21,0
05D0 60E0 ldi R22,0
05D2 70E0 ldi R23,0
05D4 FE01 movw R30,R28
05D6 20A4 ldd R2,z+40
05D8 31A4 ldd R3,z+41
05DA 42A4 ldd R4,z+42
05DC 53A4 ldd R5,z+43
05DE 240E add R2,R20
05E0 351E adc R3,R21
05E2 461E adc R4,R22
05E4 571E adc R5,R23
05E6 FE01 movw R30,R28
05E8 20A6 std z+40,R2
05EA 31A6 std z+41,R3
05EC 42A6 std z+42,R4
05EE 53A6 std z+43,R5
05F0 L21:
05F0 .dbline 86
05F0 20901D01 lds R2,_Boot+13
05F4 3324 clr R3
05F6 4424 clr R4
05F8 5524 clr R5
05FA FE01 movw R30,R28
05FC 60A4 ldd R6,z+40
05FE 71A4 ldd R7,z+41
0600 82A4 ldd R8,z+42
0602 93A4 ldd R9,z+43
0604 6214 cp R6,R2
0606 7304 cpc R7,R3
0608 8404 cpc R8,R4
060A 9504 cpc R9,R5
060C 08F4 brsh X5
060E 4CCE xjmp L18
0610 X5:
0610 .dbline 127
0610 ; }
0610 ; }
0610 ; NextCluster = GetNextCluster(NextCluster);
0610 FE01 movw R30,R28
0612 01A9 ldd R16,z+49
0614 12A9 ldd R17,z+50
0616 23A9 ldd R18,z+51
0618 34A9 ldd R19,z+52
061A 8EDD xcall _GetNextCluster
061C FE01 movw R30,R28
061E 01AB std z+49,R16
0620 12AB std z+50,R17
0622 23AB std z+51,R18
0624 34AB std z+52,R19
0626 .dbline 128
0626 ; if (NextCluster > CLUST_RSRVD) break;
0626 46EF ldi R20,246
0628 5FEF ldi R21,255
062A 6FEF ldi R22,255
062C 7FE0 ldi R23,15
062E FE01 movw R30,R28
0630 21A8 ldd R2,z+49
0632 32A8 ldd R3,z+50
0634 43A8 ldd R4,z+51
0636 54A8 ldd R5,z+52
0638 4215 cp R20,R2
063A 5305 cpc R21,R3
063C 6405 cpc R22,R4
063E 7505 cpc R23,R5
0640 08F4 brsh L80
0642 .dbline 128
0642 01C0 xjmp L17
0644 L80:
0644 .dbline 129
0644 L16:
0644 .dbline 83
0644 1CCE xjmp L15
0646 L17:
0646 .dbline 130
0646 ; }
0646 ; return Files;
0646 0FA9 ldd R16,y+55
0648 18AD ldd R17,y+56
064A .dbline -2
064A L14:
064A E996 adiw R28,57
064C 0E940000 xcall pop_gset5
0650 2496 adiw R28,4
0652 .dbline 0 ; func end
0652 0895 ret
0654 .dbsym l k 9 i
0654 .dbsym l NextCluster 49 l
0654 .dbsym l LBA 45 l
0654 .dbsym l LinePtr 44 c
0654 .dbsym l i 40 l
0654 .dbsym r LongFileName 14 i
0654 .dbsym l Files 55 i
0654 .dbsym l Offset 53 i
0654 .dbsym r LongFilePtr 10 i
0654 .dbsym l Entry 8 X
0654 .dbsym r j 12 i
0654 .dbsym l Display 75 i
0654 .dbsym l Qte 73 i
0654 .dbsym l From 71 i
0654 .dbsym l Cluster 67 l
0654 .dbend
0654 .dbfunc e DisplayFiles _DisplayFiles fV
0654 ; i -> R20,R21
0654 ; j -> R10,R11
0654 ; LinePtr -> R22,R23
.even
0654 _DisplayFiles::
0654 0E940000 xcall push_gset3
0658 B801 movw R22,R16
065A .dbline -1
065A .dbline 138
065A ; }
065A ;
065A ; //*************************************
065A ; // void DisplayFiles(unsigned int FileNum)
065A ; //
065A ; //*************************************
065A ; void DisplayFiles(unsigned char *LinePtr)
065A ; {
065A .dbline 142
065A ; extern unsigned char RemoteTextLine[5][40];
065A ; int i,j;
065A ;
065A ; if (*LinePtr == 0)
065A FB01 movw R30,R22
065C 2080 ldd R2,z+0
065E 2220 tst R2
0660 01F5 brne L83
0662 .dbline 143
0662 ; {
0662 .dbline 144
0662 ; for (i=0;i<5;i++) // Clear all FileName in the commun buffer
0662 4427 clr R20
0664 5527 clr R21
0666 L85:
0666 .dbline 145
0666 ; {
0666 .dbline 146
0666 AA24 clr R10
0668 BB24 clr R11
066A L89:
066A .dbline 146
066A 08E2 ldi R16,40
066C 10E0 ldi R17,0
066E 9A01 movw R18,R20
0670 0E940000 xcall empy16s
0674 1801 movw R2,R16
0676 80E0 ldi R24,<_RemoteTextLine
0678 90E0 ldi R25,>_RemoteTextLine
067A 280E add R2,R24
067C 391E adc R3,R25
067E F501 movw R30,R10
0680 E20D add R30,R2
0682 F31D adc R31,R3
0684 2224 clr R2
0686 2082 std z+0,R2
0688 L90:
0688 .dbline 146
0688 C501 movw R24,R10
068A 0196 adiw R24,1
068C 5C01 movw R10,R24
068E .dbline 146
068E 8832 cpi R24,40
0690 E0E0 ldi R30,0
0692 9E07 cpc R25,R30
0694 54F3 brlt L89
0696 .dbline 147
0696 L86:
0696 .dbline 144
0696 4F5F subi R20,255 ; offset = 1
0698 5F4F sbci R21,255
069A .dbline 144
069A 4530 cpi R20,5
069C E0E0 ldi R30,0
069E 5E07 cpc R21,R30
06A0 14F3 brlt L85
06A2 .dbline 148
06A2 ; for (j=0;j<40;j++) RemoteTextLine[i][j] = 0x00;
06A2 ; }
06A2 ; }
06A2 L83:
06A2 .dbline 150
06A2 ;
06A2 ; File.Name[39] = 0x00;
06A2 2224 clr R2
06A4 20922B00 sts _File+39,R2
06A8 .dbline 151
06A8 4427 clr R20
06AA 5527 clr R21
06AC L94:
06AC .dbline 151
06AC FB01 movw R30,R22
06AE 2080 ldd R2,z+0
06B0 88E2 ldi R24,40
06B2 829D mul R24,R2
06B4 1001 movw R2,R0
06B6 80E0 ldi R24,<_RemoteTextLine
06B8 90E0 ldi R25,>_RemoteTextLine
06BA 280E add R2,R24
06BC 391E adc R3,R25
06BE FA01 movw R30,R20
06C0 E20D add R30,R2
06C2 F31D adc R31,R3
06C4 80E0 ldi R24,<_File
06C6 90E0 ldi R25,>_File
06C8 DA01 movw R26,R20
06CA A80F add R26,R24
06CC B91F adc R27,R25
06CE 2C90 ld R2,x
06D0 2082 std z+0,R2
06D2 L95:
06D2 .dbline 151
06D2 ; for (i=0;i<40;i++) RemoteTextLine[*LinePtr][i] = File.Name[i];
06D2 4F5F subi R20,255 ; offset = 1
06D4 5F4F sbci R21,255
06D6 .dbline 151
06D6 4832 cpi R20,40
06D8 E0E0 ldi R30,0
06DA 5E07 cpc R21,R30
06DC 3CF3 brlt L94
06DE .dbline 152
06DE ; (*LinePtr)++;
06DE FB01 movw R30,R22
06E0 8081 ldd R24,z+0
06E2 8F5F subi R24,255 ; addi 1
06E4 8083 std z+0,R24
06E6 .dbline -2
06E6 L82:
06E6 0E940000 xcall pop_gset3
06EA .dbline 0 ; func end
06EA 0895 ret
06EC .dbsym r i 20 I
06EC .dbsym r j 10 I
06EC .dbsym r LinePtr 22 pc
06EC .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\IccPro\Mp3Ide\fat.c
0000 _FirstDataSector::
0000 .blkb 4
0004 .dbsym e FirstDataSector _FirstDataSector l
0004 _File::
0004 .blkb 268
0110 .dbsym e File _File X
0110 _Boot::
0110 .blkb 52
0144 .dbsym e Boot _Boot X
0144 _Part::
0144 .blkb 16
0154 .dbsym e Part _Part X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -