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