📄 mp3player.lis
字号:
0486 841C adc R8,R4
0488 951C adc R9,R5
048A 8882 std y+0,R8
048C 9982 std y+1,R9
048E 9301 movw R18,R6
0490 0027 clr R16
0492 0E940000 xcall _ata_read_sector_byte
0496 .dbline 198
0496 ; for (j=0;j<Boot.BytesPerSec;j=j+32)
0496 40E0 ldi R20,0
0498 50E0 ldi R21,0
049A 60E0 ldi R22,0
049C 70E0 ldi R23,0
049E FE01 movw R30,R28
04A0 4487 std z+12,R20
04A2 5587 std z+13,R21
04A4 6687 std z+14,R22
04A6 7787 std z+15,R23
04A8 50C0 xjmp L72
04AA L69:
04AA .dbline 199
04AA ; {
04AA .dbline 200
04AA ; TimeOut = 0;
04AA 40E0 ldi R20,0
04AC 50E0 ldi R21,0
04AE 60E0 ldi R22,0
04B0 70E0 ldi R23,0
04B2 FE01 movw R30,R28
04B4 4087 std z+8,R20
04B6 5187 std z+9,R21
04B8 6287 std z+10,R22
04BA 7387 std z+11,R23
04BC 29C0 xjmp L75
04BE L74:
04BE .dbline 202
04BE ; while (!(PORT_MP3_IN & DREQ))
04BE ; {
04BE .dbline 203
04BE ; WDR();
04BE A895 wdr
04C0 .dbline 204
04C0 ; if (Key != 0) return Key;
04C0 20900000 lds R2,_Key
04C4 2220 tst R2
04C6 21F0 breq L77
04C8 .dbline 204
04C8 00910000 lds R16,_Key
04CC 1127 clr R17
04CE C9C0 xjmp L59
04D0 L77:
04D0 .dbline 205
04D0 ; TimeOut++;
04D0 41E0 ldi R20,1
04D2 50E0 ldi R21,0
04D4 60E0 ldi R22,0
04D6 70E0 ldi R23,0
04D8 FE01 movw R30,R28
04DA 2084 ldd R2,z+8
04DC 3184 ldd R3,z+9
04DE 4284 ldd R4,z+10
04E0 5384 ldd R5,z+11
04E2 240E add R2,R20
04E4 351E adc R3,R21
04E6 461E adc R4,R22
04E8 571E adc R5,R23
04EA 2086 std z+8,R2
04EC 3186 std z+9,R3
04EE 4286 std z+10,R4
04F0 5386 std z+11,R5
04F2 .dbline 206
04F2 ; if (TimeOut > 100000)
04F2 40EA ldi R20,160
04F4 56E8 ldi R21,134
04F6 61E0 ldi R22,1
04F8 70E0 ldi R23,0
04FA 4215 cp R20,R2
04FC 5305 cpc R21,R3
04FE 6405 cpc R22,R4
0500 7505 cpc R23,R5
0502 30F4 brsh L79
0504 .dbline 207
0504 ; {
0504 .dbline 208
0504 ; VS1001Init(HARD); // VS1001 is jam
0504 01E0 ldi R16,1
0506 0E940000 xcall _VS1001Init
050A .dbline 209
050A ; return 0x01; // Next Song
050A 01E0 ldi R16,1
050C 10E0 ldi R17,0
050E A9C0 xjmp L59
0510 L79:
0510 .dbline 211
0510 L75:
0510 .dbline 201
0510 B79B sbis 0x16,7
0512 D5CF rjmp L74
0514 .dbline 212
0514 20E2 ldi R18,32
0516 80E0 ldi R24,<_SectorBuffer
0518 90E0 ldi R25,>_SectorBuffer
051A FE01 movw R30,R28
051C 0485 ldd R16,z+12
051E 1585 ldd R17,z+13
0520 080F add R16,R24
0522 191F adc R17,R25
0524 0E940000 xcall _VS1001_Stream
0528 .dbline 213
0528 L70:
0528 .dbline 198
0528 40E2 ldi R20,32
052A 50E0 ldi R21,0
052C 60E0 ldi R22,0
052E 70E0 ldi R23,0
0530 FE01 movw R30,R28
0532 2484 ldd R2,z+12
0534 3584 ldd R3,z+13
0536 4684 ldd R4,z+14
0538 5784 ldd R5,z+15
053A 240E add R2,R20
053C 351E adc R3,R21
053E 461E adc R4,R22
0540 571E adc R5,R23
0542 2486 std z+12,R2
0544 3586 std z+13,R3
0546 4686 std z+14,R4
0548 5786 std z+15,R5
054A L72:
054A .dbline 198
054A 20900B00 lds R2,_Boot+11
054E 30900C00 lds R3,_Boot+11+1
0552 4424 clr R4
0554 5524 clr R5
0556 FE01 movw R30,R28
0558 6484 ldd R6,z+12
055A 7584 ldd R7,z+13
055C 8684 ldd R8,z+14
055E 9784 ldd R9,z+15
0560 6214 cp R6,R2
0562 7304 cpc R7,R3
0564 8404 cpc R8,R4
0566 9504 cpc R9,R5
0568 08F4 brsh X6
056A 9FCF xjmp L69
056C X6:
056C .dbline 214
056C L65:
056C .dbline 195
056C 41E0 ldi R20,1
056E 50E0 ldi R21,0
0570 60E0 ldi R22,0
0572 70E0 ldi R23,0
0574 FE01 movw R30,R28
0576 2088 ldd R2,z+16
0578 3188 ldd R3,z+17
057A 4288 ldd R4,z+18
057C 5388 ldd R5,z+19
057E 240E add R2,R20
0580 351E adc R3,R21
0582 461E adc R4,R22
0584 571E adc R5,R23
0586 208A std z+16,R2
0588 318A std z+17,R3
058A 428A std z+18,R4
058C 538A std z+19,R5
058E L67:
058E .dbline 195
058E 20900D00 lds R2,_Boot+13
0592 3324 clr R3
0594 4424 clr R4
0596 5524 clr R5
0598 FE01 movw R30,R28
059A 6088 ldd R6,z+16
059C 7188 ldd R7,z+17
059E 8288 ldd R8,z+18
05A0 9388 ldd R9,z+19
05A2 6214 cp R6,R2
05A4 7304 cpc R7,R3
05A6 8404 cpc R8,R4
05A8 9504 cpc R9,R5
05AA 08F4 brsh X7
05AC 55CF xjmp L64
05AE X7:
05AE .dbline 215
05AE ; }
05AE ; }
05AE ; VS1001_Stream(&SectorBuffer[j],32);
05AE ; }
05AE ; }
05AE ; ByteSend += (Boot.BytesPerSec * Boot.SecPerClust);
05AE 222D mov R18,R2
05B0 3327 clr R19
05B2 00910B00 lds R16,_Boot+11
05B6 10910C00 lds R17,_Boot+11+1
05BA 0E940000 xcall empy16s
05BE 1801 movw R2,R16
05C0 4424 clr R4
05C2 5524 clr R5
05C4 FE01 movw R30,R28
05C6 648C ldd R6,z+28
05C8 758C ldd R7,z+29
05CA 868C ldd R8,z+30
05CC 978C ldd R9,z+31
05CE 620C add R6,R2
05D0 731C adc R7,R3
05D2 841C adc R8,R4
05D4 951C adc R9,R5
05D6 648E std z+28,R6
05D8 758E std z+29,R7
05DA 868E std z+30,R8
05DC 978E std z+31,R9
05DE .dbline 216
05DE ; Percent = (ByteSend / (File.FileSize / 100));
05DE 44E6 ldi R20,100
05E0 50E0 ldi R21,0
05E2 60E0 ldi R22,0
05E4 70E0 ldi R23,0
05E6 40900A01 lds R4,_File+264+2
05EA 50900B01 lds R5,_File+264+2+1
05EE 20900801 lds R2,_File+264
05F2 30900901 lds R3,_File+264+1
05F6 7A93 st -y,R23
05F8 6A93 st -y,R22
05FA 5A93 st -y,R21
05FC 4A93 st -y,R20
05FE 8101 movw R16,R2
0600 9201 movw R18,R4
0602 0E940000 xcall div32u
0606 FE01 movw R30,R28
0608 248C ldd R2,z+28
060A 358C ldd R3,z+29
060C 468C ldd R4,z+30
060E 578C ldd R5,z+31
0610 3A93 st -y,R19
0612 2A93 st -y,R18
0614 1A93 st -y,R17
0616 0A93 st -y,R16
0618 8101 movw R16,R2
061A 9201 movw R18,R4
061C 0E940000 xcall div32u
0620 FE01 movw R30,R28
0622 00A3 std z+32,R16
0624 11A3 std z+33,R17
0626 22A3 std z+34,R18
0628 33A3 std z+35,R19
062A .dbline 217
062A ; NextCluster = GetNextCluster(NextCluster);
062A 008D ldd R16,z+24
062C 118D ldd R17,z+25
062E 228D ldd R18,z+26
0630 338D ldd R19,z+27
0632 0E940000 xcall _GetNextCluster
0636 FE01 movw R30,R28
0638 008F std z+24,R16
063A 118F std z+25,R17
063C 228F std z+26,R18
063E 338F std z+27,R19
0640 .dbline 218
0640 ; if (NextCluster > CLUST_RSRVD) break;
0640 46EF ldi R20,246
0642 5FEF ldi R21,255
0644 6FEF ldi R22,255
0646 7FE0 ldi R23,15
0648 208C ldd R2,z+24
064A 318C ldd R3,z+25
064C 428C ldd R4,z+26
064E 538C ldd R5,z+27
0650 4215 cp R20,R2
0652 5305 cpc R21,R3
0654 6405 cpc R22,R4
0656 7505 cpc R23,R5
0658 08F4 brsh L84
065A .dbline 218
065A 01C0 xjmp L63
065C L84:
065C .dbline 219
065C L62:
065C .dbline 192
065C E8CE xjmp L61
065E L63:
065E .dbline 220
065E ; }
065E ; return 0x01; // Next Song
065E 01E0 ldi R16,1
0660 10E0 ldi R17,0
0662 .dbline -2
0662 L59:
0662 A496 adiw R28,36
0664 0E940000 xcall pop_gset2
0668 .dbline 0 ; func end
0668 0895 ret
066A .dbsym l Percent 32 l
066A .dbsym l ByteSend 28 l
066A .dbsym l NextCluster 24 l
066A .dbsym l LBA 20 l
066A .dbsym l i 16 l
066A .dbsym l j 12 l
066A .dbsym l TimeOut 8 l
066A .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DATA\MP3\Player\Code2\MP3Player.c
0000 _RemoteTextLine::
0000 .blkb 200
00C8 .dbsym e RemoteTextLine _RemoteTextLine A[200:5:40]c
00C8 _SectorBuffer::
00C8 .blkb 512
02C8 .dbsym e SectorBuffer _SectorBuffer A[512:512]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -