⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 使用硬盘制作mp3的源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -