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