📄 main.lis
字号:
079C 7383 std z+3,R23
079E E052 subi R30,32
07A0 F240 sbci R31,2
07A2 .dbline 253
07A2 ; NextCluster = File.FirstClust;
07A2 40900601 lds R4,_File+260+2
07A6 50900701 lds R5,_File+260+2+1
07AA 20900401 lds R2,_File+260
07AE 30900501 lds R3,_File+260+1
07B2 E45E subi R30,228 ; addi 540
07B4 FD4F sbci R31,253
07B6 2082 std z+0,R2
07B8 3182 std z+1,R3
07BA 4282 std z+2,R4
07BC 5382 std z+3,R5
07BE 3DC1 xjmp L89
07C0 L88:
07C0 .dbline 255
07C0 ; while (1)
07C0 ; {
07C0 .dbline 256
07C0 ; LBA = Clust2LBA(NextCluster);
07C0 FE01 movw R30,R28
07C2 E45E subi R30,228 ; addi 540
07C4 FD4F sbci R31,253
07C6 0081 ldd R16,z+0
07C8 1181 ldd R17,z+1
07CA 2281 ldd R18,z+2
07CC 3381 ldd R19,z+3
07CE 0E940000 xcall _Clust2LBA
07D2 FE01 movw R30,R28
07D4 E85E subi R30,232 ; addi 536
07D6 FD4F sbci R31,253
07D8 0083 std z+0,R16
07DA 1183 std z+1,R17
07DC 2283 std z+2,R18
07DE 3383 std z+3,R19
07E0 E851 subi R30,24
07E2 F240 sbci R31,2
07E4 .dbline 257
07E4 ; for (i=0;i<Boot.SecPerClust;i++)
07E4 40E0 ldi R20,0
07E6 50E0 ldi R21,0
07E8 60E0 ldi R22,0
07EA 70E0 ldi R23,0
07EC EC5E subi R30,236 ; addi 532
07EE FD4F sbci R31,253
07F0 4083 std z+0,R20
07F2 5183 std z+1,R21
07F4 6283 std z+2,R22
07F6 7383 std z+3,R23
07F8 A7C0 xjmp L94
07FA L91:
07FA .dbline 258
07FA ; {
07FA .dbline 259
07FA ; ata_read_sector_byte(0, LBA+i, 0, 512, (unsigned char*)&buffer);
07FA CE01 movw R24,R28
07FC 4496 adiw R24,20
07FE 9F83 std y+7,R25
0800 8E83 std y+6,R24
0802 80E0 ldi R24,512
0804 92E0 ldi R25,2
0806 9D83 std y+5,R25
0808 8C83 std y+4,R24
080A 2224 clr R2
080C 3324 clr R3
080E 3B82 std y+3,R3
0810 2A82 std y+2,R2
0812 FE01 movw R30,R28
0814 EC5E subi R30,236 ; addi 532
0816 FD4F sbci R31,253
0818 2080 ldd R2,z+0
081A 3180 ldd R3,z+1
081C 4280 ldd R4,z+2
081E 5380 ldd R5,z+3
0820 E451 subi R30,20
0822 F240 sbci R31,2
0824 E85E subi R30,232 ; addi 536
0826 FD4F sbci R31,253
0828 6080 ldd R6,z+0
082A 7180 ldd R7,z+1
082C 8280 ldd R8,z+2
082E 9380 ldd R9,z+3
0830 620C add R6,R2
0832 731C adc R7,R3
0834 841C adc R8,R4
0836 951C adc R9,R5
0838 8882 std y+0,R8
083A 9982 std y+1,R9
083C 9301 movw R18,R6
083E 0027 clr R16
0840 0E940000 xcall _ata_read_sector_byte
0844 .dbline 260
0844 ; for (j=0;j<Boot.BytesPerSec;j=j+32)
0844 40E0 ldi R20,0
0846 50E0 ldi R21,0
0848 60E0 ldi R22,0
084A 70E0 ldi R23,0
084C FE01 movw R30,R28
084E 408B std z+16,R20
0850 518B std z+17,R21
0852 628B std z+18,R22
0854 738B std z+19,R23
0856 50C0 xjmp L99
0858 L96:
0858 .dbline 261
0858 ; {
0858 .dbline 262
0858 ; TimeOut = 0;
0858 40E0 ldi R20,0
085A 50E0 ldi R21,0
085C 60E0 ldi R22,0
085E 70E0 ldi R23,0
0860 FE01 movw R30,R28
0862 4087 std z+8,R20
0864 5187 std z+9,R21
0866 6287 std z+10,R22
0868 7387 std z+11,R23
086A 29C0 xjmp L102
086C L101:
086C .dbline 264
086C ; while (!(PORT_MP3_IN & DREQ))
086C ; {
086C .dbline 265
086C ; WDR();
086C A895 wdr
086E .dbline 266
086E ; if (DoTask((int)Percent) == ABORT) return 0;
086E FE01 movw R30,R28
0870 0485 ldd R16,z+12
0872 1585 ldd R17,z+13
0874 F1D0 xcall _DoTask
0876 0130 cpi R16,1
0878 E0E0 ldi R30,0
087A 1E07 cpc R17,R30
087C 19F4 brne L104
087E .dbline 266
087E 0027 clr R16
0880 1127 clr R17
0882 DEC0 xjmp L86
0884 L104:
0884 .dbline 267
0884 ; TimeOut++;
0884 41E0 ldi R20,1
0886 50E0 ldi R21,0
0888 60E0 ldi R22,0
088A 70E0 ldi R23,0
088C FE01 movw R30,R28
088E 2084 ldd R2,z+8
0890 3184 ldd R3,z+9
0892 4284 ldd R4,z+10
0894 5384 ldd R5,z+11
0896 240E add R2,R20
0898 351E adc R3,R21
089A 461E adc R4,R22
089C 571E adc R5,R23
089E 2086 std z+8,R2
08A0 3186 std z+9,R3
08A2 4286 std z+10,R4
08A4 5386 std z+11,R5
08A6 .dbline 268
08A6 ; if (TimeOut > 100000) return 0; // VS1001 is jam
08A6 40EA ldi R20,160
08A8 56E8 ldi R21,134
08AA 61E0 ldi R22,1
08AC 70E0 ldi R23,0
08AE 4215 cp R20,R2
08B0 5305 cpc R21,R3
08B2 6405 cpc R22,R4
08B4 7505 cpc R23,R5
08B6 18F4 brsh L106
08B8 .dbline 268
08B8 0027 clr R16
08BA 1127 clr R17
08BC C1C0 xjmp L86
08BE L106:
08BE .dbline 269
08BE L102:
08BE .dbline 263
08BE B79B sbis 0x16,7
08C0 D5CF rjmp L101
08C2 .dbline 270
08C2 20E2 ldi R18,32
08C4 CE01 movw R24,R28
08C6 4496 adiw R24,20
08C8 FE01 movw R30,R28
08CA 0089 ldd R16,z+16
08CC 1189 ldd R17,z+17
08CE 080F add R16,R24
08D0 191F adc R17,R25
08D2 0E940000 xcall _VS1001_Stream
08D6 .dbline 271
08D6 L97:
08D6 .dbline 260
08D6 40E2 ldi R20,32
08D8 50E0 ldi R21,0
08DA 60E0 ldi R22,0
08DC 70E0 ldi R23,0
08DE FE01 movw R30,R28
08E0 2088 ldd R2,z+16
08E2 3188 ldd R3,z+17
08E4 4288 ldd R4,z+18
08E6 5388 ldd R5,z+19
08E8 240E add R2,R20
08EA 351E adc R3,R21
08EC 461E adc R4,R22
08EE 571E adc R5,R23
08F0 208A std z+16,R2
08F2 318A std z+17,R3
08F4 428A std z+18,R4
08F6 538A std z+19,R5
08F8 L99:
08F8 .dbline 260
08F8 20900B00 lds R2,_Boot+11
08FC 30900C00 lds R3,_Boot+11+1
0900 4424 clr R4
0902 5524 clr R5
0904 FE01 movw R30,R28
0906 6088 ldd R6,z+16
0908 7188 ldd R7,z+17
090A 8288 ldd R8,z+18
090C 9388 ldd R9,z+19
090E 6214 cp R6,R2
0910 7304 cpc R7,R3
0912 8404 cpc R8,R4
0914 9504 cpc R9,R5
0916 08F4 brsh X13
0918 9FCF xjmp L96
091A X13:
091A .dbline 272
091A L92:
091A .dbline 257
091A 41E0 ldi R20,1
091C 50E0 ldi R21,0
091E 60E0 ldi R22,0
0920 70E0 ldi R23,0
0922 FE01 movw R30,R28
0924 EC5E subi R30,236 ; addi 532
0926 FD4F sbci R31,253
0928 2080 ldd R2,z+0
092A 3180 ldd R3,z+1
092C 4280 ldd R4,z+2
092E 5380 ldd R5,z+3
0930 E451 subi R30,20
0932 F240 sbci R31,2
0934 240E add R2,R20
0936 351E adc R3,R21
0938 461E adc R4,R22
093A 571E adc R5,R23
093C EC5E subi R30,236 ; addi 532
093E FD4F sbci R31,253
0940 2082 std z+0,R2
0942 3182 std z+1,R3
0944 4282 std z+2,R4
0946 5382 std z+3,R5
0948 L94:
0948 .dbline 257
0948 20900D00 lds R2,_Boot+13
094C 3324 clr R3
094E 4424 clr R4
0950 5524 clr R5
0952 FE01 movw R30,R28
0954 EC5E subi R30,236 ; addi 532
0956 FD4F sbci R31,253
0958 6080 ldd R6,z+0
095A 7180 ldd R7,z+1
095C 8280 ldd R8,z+2
095E 9380 ldd R9,z+3
0960 6214 cp R6,R2
0962 7304 cpc R7,R3
0964 8404 cpc R8,R4
0966 9504 cpc R9,R5
0968 08F4 brsh X14
096A 47CF xjmp L91
096C X14:
096C .dbline 273
096C ; }
096C ; VS1001_Stream(&buffer[j],32);
096C ; }
096C ; }
096C ; ByteSend += (Boot.BytesPerSec * Boot.SecPerClust);
096C 222D mov R18,R2
096E 3327 clr R19
0970 00910B00 lds R16,_Boot+11
0974 10910C00 lds R17,_Boot+11+1
0978 0E940000 xcall empy16s
097C 1801 movw R2,R16
097E 4424 clr R4
0980 5524 clr R5
0982 FE01 movw R30,R28
0984 E05E subi R30,224 ; addi 544
0986 FD4F sbci R31,253
0988 6080 ldd R6,z+0
098A 7180 ldd R7,z+1
098C 8280 ldd R8,z+2
098E 9380 ldd R9,z+3
0990 E052 subi R30,32
0992 F240 sbci R31,2
0994 620C add R6,R2
0996 731C adc R7,R3
0998 841C adc R8,R4
099A 951C adc R9,R5
099C E05E subi R30,224 ; addi 544
099E FD4F sbci R31,253
09A0 6082 std z+0,R6
09A2 7182 std z+1,R7
09A4 8282 std z+2,R8
09A6 9382 std z+3,R9
09A8 .dbline 274
09A8 ; Percent = (ByteSend / (File.FileSize / 100));
09A8 44E6 ldi R20,100
09AA 50E0 ldi R21,0
09AC 60E0 ldi R22,0
09AE 70E0 ldi R23,0
09B0 40900A01 lds R4,_File+264+2
09B4 50900B01 lds R5,_File+264+2+1
09B8 20900801 lds R2,_File+264
09BC 30900901 lds R3,_File+264+1
09C0 7A93 st -y,R23
09C2 6A93 st -y,R22
09C4 5A93 st -y,R21
09C6 4A93 st -y,R20
09C8 8101 movw R16,R2
09CA 9201 movw R18,R4
09CC 0E940000 xcall div32u
09D0 FE01 movw R30,R28
09D2 E05E subi R30,224 ; addi 544
09D4 FD4F sbci R31,253
09D6 2080 ldd R2,z+0
09D8 3180 ldd R3,z+1
09DA 4280 ldd R4,z+2
09DC 5380 ldd R5,z+3
09DE 3A93 st -y,R19
09E0 2A93 st -y,R18
09E2 1A93 st -y,R17
09E4 0A93 st -y,R16
09E6 8101 movw R16,R2
09E8 9201 movw R18,R4
09EA 0E940000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -