📄 fat16.lis
字号:
0568 .dbline 238
0568 80910200 lds R24,L59
056C 90910300 lds R25,L59+1
0570 0F96 adiw R24,15
0572 90930300 sts L59+1,R25
0576 80930200 sts L59,R24
057A .dbline 239
057A L81:
057A .dbline 228
057A 80911300 lds R24,L64
057E 8E5F subi R24,254 ; addi 2
0580 80931300 sts L64,R24
0584 L83:
0584 .dbline 228
0584 80911300 lds R24,L64
0588 8031 cpi R24,16
058A 80F2 brlo L80
058C .dbline 240
058C ; t+=15;
058C ; }
058C ; }
058C 45C0 rjmp L67
058E L66:
058E .dbline 242
058E ; else
058E ; {
058E .dbline 243
058E ; t=0;
058E 2224 clr R2
0590 3324 clr R3
0592 30920300 sts L59+1,R3
0596 20920200 sts L59,R2
059A .dbline 244
059A ; longfileflag=0;
059A 20920600 sts _longfileflag,R2
059E .dbline 245
059E ; for(r=0;r<16;r+=2)
059E 30920100 sts L58+1,R3
05A2 20920000 sts L58,R2
05A6 30C0 rjmp L89
05A8 L86:
05A8 .dbline 246
05A8 ; {
05A8 .dbline 247
05A8 ; if(r<8)show(fileid.FileName+r,(uint8)t,0);
05A8 80910000 lds R24,L58
05AC 90910100 lds R25,L58+1
05B0 8830 cpi R24,8
05B2 E0E0 ldi R30,0
05B4 9E07 cpc R25,R30
05B6 70F4 brsh L90
05B8 .dbline 247
05B8 2224 clr R2
05BA 2882 std y+0,R2
05BC 20910200 lds R18,L59
05C0 80E0 ldi R24,<_fileid
05C2 90E0 ldi R25,>_fileid
05C4 00910000 lds R16,L58
05C8 10910100 lds R17,L58+1
05CC 080F add R16,R24
05CE 191F adc R17,R25
05D0 03D2 rcall _show
05D2 08C0 rjmp L91
05D4 L90:
05D4 .dbline 248
05D4 ; else show(zero,(uint8)t-60,1);
05D4 81E0 ldi R24,1
05D6 8883 std y+0,R24
05D8 20910200 lds R18,L59
05DC 2C53 subi R18,60
05DE 00E0 ldi R16,<_zero
05E0 10E0 ldi R17,>_zero
05E2 FAD1 rcall _show
05E4 L91:
05E4 .dbline 249
05E4 80910200 lds R24,L59
05E8 90910300 lds R25,L59+1
05EC 0F96 adiw R24,15
05EE 90930300 sts L59+1,R25
05F2 80930200 sts L59,R24
05F6 .dbline 250
05F6 L87:
05F6 .dbline 245
05F6 80910000 lds R24,L58
05FA 90910100 lds R25,L58+1
05FE 0296 adiw R24,2
0600 90930100 sts L58+1,R25
0604 80930000 sts L58,R24
0608 L89:
0608 .dbline 245
0608 80910000 lds R24,L58
060C 90910100 lds R25,L58+1
0610 8031 cpi R24,16
0612 E0E0 ldi R30,0
0614 9E07 cpc R25,R30
0616 40F2 brlo L86
0618 .dbline 251
0618 ; t+=15;
0618 ; }
0618 ; }
0618 L67:
0618 .dbline 252
0618 ; FileIndex.ClusID=fileid.FilePosit.Start;
0618 20904800 lds R2,_fileid+26
061C 30904900 lds R3,_fileid+26+1
0620 30922500 sts _FileIndex+2+1,R3
0624 20922400 sts _FileIndex+2,R2
0628 .dbline 253
0628 ; LBA=ClusConvLBA(FileIndex.ClusID);
0628 00912400 lds R16,_FileIndex+2
062C 10912500 lds R17,_FileIndex+2+1
0630 D8DD rcall _ClusConvLBA
0632 FE01 movw R30,R28
0634 0183 std z+1,R16
0636 1283 std z+2,R17
0638 2383 std z+3,R18
063A 3483 std z+4,R19
063C .dbline 254
063C ; lenth=fileid.FilePosit.Size;
063C 40904C00 lds R4,_fileid+26+2+2
0640 50904D00 lds R5,_fileid+26+2+2+1
0644 20904A00 lds R2,_fileid+26+2
0648 30904B00 lds R3,_fileid+26+2+1
064C FE01 movw R30,R28
064E 258A std z+21,R2
0650 368A std z+22,R3
0652 478A std z+23,R4
0654 508E std z+24,R5
0656 .dbline 256
0656 ;
0656 ; BytePerClus=BPB_SecPerClus * 512;
0656 20912100 lds R18,_BPB_SecPerClus
065A 3327 clr R19
065C 00E0 ldi R16,512
065E 12E0 ldi R17,2
0660 00D0 rcall empy16s
0662 5801 movw R10,R16
0664 .dbline 257
0664 ; ClusNum=lenth/BytePerClus+1;
0664 1501 movw R2,R10
0666 4424 clr R4
0668 5524 clr R5
066A FE01 movw R30,R28
066C 6588 ldd R6,z+21
066E 7688 ldd R7,z+22
0670 8788 ldd R8,z+23
0672 908C ldd R9,z+24
0674 5A92 st -y,R5
0676 4A92 st -y,R4
0678 3A92 st -y,R3
067A 2A92 st -y,R2
067C 8301 movw R16,R6
067E 9401 movw R18,R8
0680 00D0 rcall div32u
0682 41E0 ldi R20,1
0684 50E0 ldi R21,0
0686 60E0 ldi R22,0
0688 70E0 ldi R23,0
068A 1801 movw R2,R16
068C 2901 movw R4,R18
068E 240E add R2,R20
0690 351E adc R3,R21
0692 461E adc R4,R22
0694 571E adc R5,R23
0696 6101 movw R12,R2
0698 .dbline 258
0698 ; NextClus=FileIndex.ClusID;
0698 A0902400 lds R10,_FileIndex+2
069C B0902500 lds R11,_FileIndex+2+1
06A0 .dbline 259
06A0 ; for(t=0;t<ClusNum;t++)
06A0 2224 clr R2
06A2 3324 clr R3
06A4 30920300 sts L59+1,R3
06A8 20920200 sts L59,R2
06AC 4FC1 rjmp L101
06AE L98:
06AE .dbline 260
06AE ; {
06AE .dbline 261
06AE ; for(r=0;r<BPB_SecPerClus;r++)
06AE 2224 clr R2
06B0 3324 clr R3
06B2 30920100 sts L58+1,R3
06B6 20920000 sts L58,R2
06BA 97C0 rjmp L105
06BC L102:
06BC .dbline 262
06BC ; {
06BC .dbline 263
06BC ; SD_SPI_HIGH();
06BC A3DC rcall _SD_SPI_HIGH
06BE .dbline 264
06BE ; ReadBlock(LBA+r);
06BE 20900000 lds R2,L58
06C2 30900100 lds R3,L58+1
06C6 4424 clr R4
06C8 5524 clr R5
06CA FE01 movw R30,R28
06CC 6180 ldd R6,z+1
06CE 7280 ldd R7,z+2
06D0 8380 ldd R8,z+3
06D2 9480 ldd R9,z+4
06D4 620C add R6,R2
06D6 731C adc R7,R3
06D8 841C adc R8,R4
06DA 951C adc R9,R5
06DC 8301 movw R16,R6
06DE 9401 movw R18,R8
06E0 95DC rcall _ReadBlock
06E2 6BC0 rjmp L107
06E4 L106:
06E4 .dbline 266
06E4 ; while(pointer<512)
06E4 ; {
06E4 .dbline 267
06E4 ; if(PINB&1)
06E4 B09B sbis 0x16,0
06E6 34C0 rjmp L109
06E8 .dbline 268
06E8 ; {
06E8 .dbline 269
06E8 ; for(p=0;p<32;p++)
06E8 2224 clr R2
06EA 3324 clr R3
06EC 30920500 sts L60+1,R3
06F0 20920400 sts L60,R2
06F4 1CC0 rjmp L114
06F6 L111:
06F6 .dbline 270
06F6 .dbline 271
06F6 80E0 ldi R24,<_BUFFER
06F8 90E0 ldi R25,>_BUFFER
06FA E0912A00 lds R30,L61
06FE F0912B00 lds R31,L61+1
0702 E80F add R30,R24
0704 F91F adc R31,R25
0706 0081 ldd R16,z+0
0708 00D0 rcall _VS1003B_WriteDAT
070A .dbline 272
070A 80912A00 lds R24,L61
070E 90912B00 lds R25,L61+1
0712 0196 adiw R24,1
0714 90932B00 sts L61+1,R25
0718 80932A00 sts L61,R24
071C .dbline 273
071C L112:
071C .dbline 269
071C 80910400 lds R24,L60
0720 90910500 lds R25,L60+1
0724 0196 adiw R24,1
0726 90930500 sts L60+1,R25
072A 80930400 sts L60,R24
072E L114:
072E .dbline 269
072E 80910400 lds R24,L60
0732 90910500 lds R25,L60+1
0736 8032 cpi R24,32
0738 E0E0 ldi R30,0
073A 9E07 cpc R25,R30
073C E0F2 brlo L111
073E .dbline 274
073E ; {
073E ; VS1003B_WriteDAT(BUFFER[pointer]);
073E ; pointer++;
073E ; }
073E ; if(pointer==511) break;
073E 80912A00 lds R24,L61
0742 90912B00 lds R25,L61+1
0746 8F3F cpi R24,255
0748 E1E0 ldi R30,1
074A 9E07 cpc R25,R30
074C 09F4 brne L115
074E .dbline 274
074E 3EC0 rjmp L108
0750 L115:
0750 .dbline 275
0750 ; }
0750 L109:
0750 .dbline 277
0750 ; //按键处理
0750 ; if(!(PINA&NEXT))
0750 CF99 sbic 0x19,7
0752 10C0 rjmp L117
0754 .dbline 278
0754 ; {
0754 .dbline 279
0754 ; delay(10);
0754 0AE0 ldi R16,10
0756 10E0 ldi R17,0
0758 00D0 rcall _delay
075A .dbline 280
075A ; if(!(PINA&NEXT))
075A CF99 sbic 0x19,7
075C 0BC0 rjmp L119
075E .dbline 281
075E ; {
075E .dbline 282
075E ; lcd_on();
075E 85B3 in R24,0x15
0760 8D7F andi R24,253
0762 85BB out 0x15,R24
0764 .dbline 283
0764 ; keyflag=1;
0764 81E0 ldi R24,1
0766 80930500 sts _keyflag,R24
076A .dbline 284
076A ; flag=1;
076A 80930400 sts _flag,R24
076E .dbline 285
076E ; VS1003B_SoftReset();
076E 00D0 rcall _VS1003B_SoftReset
0770 .dbline 286
0770 ; return 5;
0770 05E0 ldi R16,5
0772 F5C0 rjmp L57
0774 L119:
0774 .dbline 288
0774 ; }
0774 ; }
0774 L117:
0774 .dbline 289
0774 ; if(!(PINC&PREV))
0774 9899 sbic 0x13,0
0776 11C0 rjmp L121
0778 .dbline 290
0778 ; {
0778 .dbline 291
0778 ; delay(10);
0778 0AE0 ldi R16,10
077A 10E0 ldi R17,0
077C 00D0 rcall _delay
077E .dbline 292
077E ; if(!(PINC&PREV))
077E 9899
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -