📄 main.lis
字号:
05D0 ; ClrScr();
05D0 0E940000 xcall _ClrScr
05D4 .dbline 195
05D4 ; GotoXY(1,1);
05D4 21E0 ldi R18,1
05D6 01E0 ldi R16,1
05D8 0E940000 xcall _GotoXY
05DC .dbline 196
05DC ; tx_string(debugport,"--Song List --\0");
05DC 20E0 ldi R18,<L55
05DE 30E0 ldi R19,>L55
05E0 01E0 ldi R16,1
05E2 0E940000 xcall _tx_string
05E6 .dbline 197
05E6 ; GotoXY(2,2);
05E6 22E0 ldi R18,2
05E8 02E0 ldi R16,2
05EA 0E940000 xcall _GotoXY
05EE .dbline 198
05EE ; GetDir(Cluster,FilePtr,SONGPAGE,FILE,TRUE);
05EE 81E0 ldi R24,1
05F0 90E0 ldi R25,0
05F2 9F83 std y+7,R25
05F4 8E83 std y+6,R24
05F6 2224 clr R2
05F8 3324 clr R3
05FA 3D82 std y+5,R3
05FC 2C82 std y+4,R2
05FE 85E0 ldi R24,5
0600 9B83 std y+3,R25
0602 8A83 std y+2,R24
0604 0884 ldd R0,y+8
0606 1984 ldd R1,y+9
0608 1982 std y+1,R1
060A 0882 std y+0,R0
060C FE01 movw R30,R28
060E 0489 ldd R16,z+20
0610 1589 ldd R17,z+21
0612 2689 ldd R18,z+22
0614 3789 ldd R19,z+23
0616 0E940000 xcall _GetDir
061A .dbline 199
061A ; FilePtr += (SONGPAGE - 1);
061A 8885 ldd R24,y+8
061C 9985 ldd R25,y+9
061E 0496 adiw R24,4
0620 9987 std y+9,R25
0622 8887 std y+8,R24
0624 .dbline 200
0624 ; }
0624 L72:
0624 .dbline 201
0624 ; GotoXY(1,(FilePtr%SONGPAGE)+2);
0624 25E0 ldi R18,5
0626 30E0 ldi R19,0
0628 0885 ldd R16,y+8
062A 1985 ldd R17,y+9
062C 0E940000 xcall mod16s
0630 202F mov R18,R16
0632 2E5F subi R18,254 ; offset = 2
0634 3F4F sbci R19,255
0636 01E0 ldi R16,1
0638 0E940000 xcall _GotoXY
063C .dbline 202
063C ; }
063C L68:
063C .dbline 204
063C ;
063C ; if (ch == '6')
063C 8A2D mov R24,R10
063E 8633 cpi R24,54
0640 09F0 breq X11
0642 87C0 xjmp L74
0644 X11:
0644 .dbline 205
0644 ; {
0644 .dbline 206
0644 ; FilePtr--;
0644 8885 ldd R24,y+8
0646 9985 ldd R25,y+9
0648 0197 sbiw R24,1
064A 9987 std y+9,R25
064C 8887 std y+8,R24
064E L76:
064E .dbline 208
064E ; do
064E ; {
064E .dbline 209
064E ; FilePtr++;
064E 8885 ldd R24,y+8
0650 9985 ldd R25,y+9
0652 0196 adiw R24,1
0654 9987 std y+9,R25
0656 8887 std y+8,R24
0658 .dbline 210
0658 ; if (FilePtr > MaxFile) break;
0658 0C01 movw R0,R24
065A E816 cp R14,R24
065C F906 cpc R15,R25
065E 08F4 brsh L79
0660 .dbline 210
0660 47C0 xjmp L78
0662 L79:
0662 .dbline 211
0662 ; ClrScr();
0662 0E940000 xcall _ClrScr
0666 .dbline 212
0666 ; GotoXY(1,1);
0666 21E0 ldi R18,1
0668 01E0 ldi R16,1
066A 0E940000 xcall _GotoXY
066E .dbline 213
066E ; GetDir(Cluster,FilePtr,1,FILE,FALSE);
066E 2224 clr R2
0670 3324 clr R3
0672 3F82 std y+7,R3
0674 2E82 std y+6,R2
0676 3D82 std y+5,R3
0678 2C82 std y+4,R2
067A 81E0 ldi R24,1
067C 90E0 ldi R25,0
067E 9B83 std y+3,R25
0680 8A83 std y+2,R24
0682 0884 ldd R0,y+8
0684 1984 ldd R1,y+9
0686 1982 std y+1,R1
0688 0882 std y+0,R0
068A FE01 movw R30,R28
068C 0489 ldd R16,z+20
068E 1589 ldd R17,z+21
0690 2689 ldd R18,z+22
0692 3789 ldd R19,z+23
0694 0E940000 xcall _GetDir
0698 .dbline 214
0698 ; tx_string(debugport,"-Song Playing-\0");
0698 20E0 ldi R18,<L81
069A 30E0 ldi R19,>L81
069C 01E0 ldi R16,1
069E 0E940000 xcall _tx_string
06A2 .dbline 215
06A2 ; GotoXY(1,3);
06A2 23E0 ldi R18,3
06A4 01E0 ldi R16,1
06A6 0E940000 xcall _GotoXY
06AA .dbline 216
06AA ; sprintf(&text[0],"%s\0",&File.Name[0]);
06AA 80E0 ldi R24,<_File
06AC 90E0 ldi R25,>_File
06AE 9983 std y+1,R25
06B0 8883 std y+0,R24
06B2 20E0 ldi R18,<L82
06B4 30E0 ldi R19,>L82
06B6 00E0 ldi R16,<_text
06B8 10E0 ldi R17,>_text
06BA 0E940000 xcall _sprintf
06BE .dbline 217
06BE ; tx_string(debugport,&text[0]);
06BE 20E0 ldi R18,<_text
06C0 30E0 ldi R19,>_text
06C2 01E0 ldi R16,1
06C4 0E940000 xcall _tx_string
06C8 .dbline 218
06C8 ; GotoXY(2,5);
06C8 25E0 ldi R18,5
06CA 02E0 ldi R16,2
06CC 0E940000 xcall _GotoXY
06D0 .dbline 219
06D0 ; sprintf(&text[0],"Percent = 0 \0");
06D0 20E0 ldi R18,<L83
06D2 30E0 ldi R19,>L83
06D4 00E0 ldi R16,<_text
06D6 10E0 ldi R17,>_text
06D8 0E940000 xcall _sprintf
06DC .dbline 220
06DC ; tx_string(debugport,&text[0]);
06DC 20E0 ldi R18,<_text
06DE 30E0 ldi R19,>_text
06E0 01E0 ldi R16,1
06E2 0E940000 xcall _tx_string
06E6 .dbline 221
06E6 ; }
06E6 L77:
06E6 .dbline 222
06E6 ; while(PlayMP3());
06E6 43D0 xcall _PlayMP3
06E8 0030 cpi R16,0
06EA 0107 cpc R16,R17
06EC 09F0 breq X12
06EE AFCF xjmp L76
06F0 X12:
06F0 X7:
06F0 L78:
06F0 .dbline 224
06F0 ;
06F0 ; ClrScr();
06F0 0E940000 xcall _ClrScr
06F4 .dbline 225
06F4 ; GotoXY(1,1);
06F4 21E0 ldi R18,1
06F6 01E0 ldi R16,1
06F8 0E940000 xcall _GotoXY
06FC .dbline 226
06FC ; tx_string(debugport,"--Song List --\0");
06FC 20E0 ldi R18,<L55
06FE 30E0 ldi R19,>L55
0700 01E0 ldi R16,1
0702 0E940000 xcall _tx_string
0706 .dbline 227
0706 ; GotoXY(2,2);
0706 22E0 ldi R18,2
0708 02E0 ldi R16,2
070A 0E940000 xcall _GotoXY
070E .dbline 228
070E ; GetDir(Cluster,FilePtr,SONGPAGE,FILE,TRUE);
070E 81E0 ldi R24,1
0710 90E0 ldi R25,0
0712 9F83 std y+7,R25
0714 8E83 std y+6,R24
0716 2224 clr R2
0718 3324 clr R3
071A 3D82 std y+5,R3
071C 2C82 std y+4,R2
071E 85E0 ldi R24,5
0720 9B83 std y+3,R25
0722 8A83 std y+2,R24
0724 0884 ldd R0,y+8
0726 1984 ldd R1,y+9
0728 1982 std y+1,R1
072A 0882 std y+0,R0
072C FE01 movw R30,R28
072E 0489 ldd R16,z+20
0730 1589 ldd R17,z+21
0732 2689 ldd R18,z+22
0734 3789 ldd R19,z+23
0736 0E940000 xcall _GetDir
073A .dbline 229
073A ; GotoXY(1,(FilePtr%SONGPAGE)+2);
073A 25E0 ldi R18,5
073C 30E0 ldi R19,0
073E 0885 ldd R16,y+8
0740 1985 ldd R17,y+9
0742 0E940000 xcall mod16s
0746 202F mov R18,R16
0748 2E5F subi R18,254 ; offset = 2
074A 3F4F sbci R19,255
074C 01E0 ldi R16,1
074E 0E940000 xcall _GotoXY
0752 .dbline 230
0752 ; }
0752 L74:
0752 .dbline 231
0752 ; if (ch == '4')
0752 8A2D mov R24,R10
0754 8433 cpi R24,52
0756 29F4 brne L84
0758 .dbline 232
0758 ; {
0758 .dbline 233
0758 ; DirBrowser(2);
0758 02E0 ldi R16,2
075A 10E0 ldi R17,0
075C 20E0 ldi R18,0
075E 30E0 ldi R19,0
0760 00DD xcall _DirBrowser
0762 .dbline 234
0762 ; }
0762 L84:
0762 .dbline 235
0762 L57:
0762 .dbline 166
0762 B8CE xjmp L60
0764 X8:
0764 .dbline -2
0764 .dbline 236
0764 ; }
0764 ; }
0764 L54:
0764 2A96 adiw R28,10
0766 0E940000 xcall pop_gset5
076A 2496 adiw R28,4
076C .dbline 0 ; func end
076C 0895 ret
076E .dbsym r Page 12 I
076E .dbsym r ch 10 c
076E .dbsym r MaxFile 14 i
076E .dbsym l FilePtr 8 I
076E .dbsym l Cluster 20 l
076E .dbend
076E .dbfunc e PlayMP3 _PlayMP3 fI
076E ; ByteSend -> y+544
076E ; NextCluster -> y+540
076E ; LBA -> y+536
076E ; i -> y+532
076E ; buffer -> y+20
076E ; j -> y+16
076E ; Percent -> y+12
076E ; TimeOut -> y+8
.even
076E _PlayMP3::
076E 0E940000 xcall push_gset2
0772 EF97 sbiw R28,63
0774 EF97 sbiw R28,63
0776 EF97 sbiw R28,63
0778 EF97 sbiw R28,63
077A EF97 sbiw R28,63
077C EF97 sbiw R28,63
077E EF97 sbiw R28,63
0780 EF97 sbiw R28,63
0782 AC97 sbiw R28,44 ; offset = 548
0784 .dbline -1
0784 .dbline 245
0784 ;
0784 ; //*************************************
0784 ; // int PlayMP3(void)
0784 ; //
0784 ; // return 0 -> Error
0784 ; // return 1 -> successfull play
0784 ; //*************************************
0784 ; int PlayMP3(void)
0784 ; {
0784 .dbline 251
0784 ; unsigned char buffer[512];
0784 ; unsigned long LBA,i,j,NextCluster,TimeOut,ByteSend,Percent;
0784 ; extern struct FileInfo File;
0784 ; extern struct BootRecord Boot;
0784 ;
0784 ; VS1001Init();
0784 0E940000 xcall _VS1001Init
0788 .dbline 252
0788 ; ByteSend = 0;
0788 40E0 ldi R20,0
078A 50E0 ldi R21,0
078C 60E0 ldi R22,0
078E 70E0 ldi R23,0
0790 FE01 movw R30,R28
0792 E05E subi R30,224 ; addi 544
0794 FD4F sbci R31,253
0796 4083 std z+0,R20
0798 5183 std z+1,R21
079A 6283 std z+2,R22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -