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

📄 mp3player.lis

📁 使用硬盘制作mp3的源程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0302 0E940000          xcall div16s
 0306 7801              movw R14,R16
 0308                   .dbline 147
 0308           ;                                          GetDir(Cluster,Page*SONGPAGE,SONGPAGE,TRUE); 
 0308 81E0              ldi R24,1
 030A 90E0              ldi R25,0
 030C 9D83              std y+5,R25
 030E 8C83              std y+4,R24
 0310 85E0              ldi R24,5
 0312 9B83              std y+3,R25
 0314 8A83              std y+2,R24
 0316 05E0              ldi R16,5
 0318 10E0              ldi R17,0
 031A 9701              movw R18,R14
 031C 0E940000          xcall empy16s
 0320 1983              std y+1,R17
 0322 0883              std y+0,R16
 0324 FE01              movw R30,R28
 0326 0489              ldd R16,z+20
 0328 1589              ldd R17,z+21
 032A 2689              ldd R18,z+22
 032C 3789              ldd R19,z+23
 032E 0E940000          xcall _GetDir
 0332                   .dbline 148
 0332           ;                                          RemoteSendScreen(PLAY,(FilePtr%SONGPAGE));
 0332 25E0              ldi R18,5
 0334 30E0              ldi R19,0
 0336 8501              movw R16,R10
 0338 0E940000          xcall mod16s
 033C 202F              mov R18,R16
 033E 02E0              ldi R16,2
 0340 0E940000          xcall _RemoteSendScreen
 0344                   .dbline 149
 0344           ;                                          }
 0344           L45:
 0344                   .dbline 150
 0344           ;                                       RemoteSendLine((FilePtr%SONGPAGE));
 0344 25E0              ldi R18,5
 0346 30E0              ldi R19,0
 0348 8501              movw R16,R10
 034A 0E940000          xcall mod16s
 034E 0E940000          xcall _RemoteSendLine
 0352                   .dbline 151
 0352           ;                                       GetDir(Cluster,FilePtr,1,FALSE); 
 0352 2224              clr R2
 0354 3324              clr R3
 0356 3D82              std y+5,R3
 0358 2C82              std y+4,R2
 035A 81E0              ldi R24,1
 035C 90E0              ldi R25,0
 035E 9B83              std y+3,R25
 0360 8A83              std y+2,R24
 0362 B982              std y+1,R11
 0364 A882              std y+0,R10
 0366 FE01              movw R30,R28
 0368 0489              ldd R16,z+20
 036A 1589              ldd R17,z+21
 036C 2689              ldd R18,z+22
 036E 3789              ldd R19,z+23
 0370 0E940000          xcall _GetDir
 0374                   .dbline 152
 0374           ;                                       PlayMP3();
 0374 40D0              xcall _PlayMP3
 0376                   .dbline 153
 0376           ;                                       if (Key == 0x01) FilePtr = FilePtr;
 0376 80910000          lds R24,_Key
 037A 8130              cpi R24,1
 037C 01F4              brne L47
 037E                   .dbline 153
 037E           L47:
 037E                   .dbline 154
 037E           ;                                       if (Key == 0x02) FilePtr -=2;
 037E 80910000          lds R24,_Key
 0382 8230              cpi R24,2
 0384 19F4              brne L49
 0386                   .dbline 154
 0386 C501              movw R24,R10
 0388 0297              sbiw R24,2
 038A 5C01              movw R10,R24
 038C           L49:
 038C                   .dbline 155
 038C           ;                                       if (Key == 0x04) break;
 038C 80910000          lds R24,_Key
 0390 8430              cpi R24,4
 0392 09F4              brne L51
 0394                   .dbline 155
 0394 06C0              xjmp L42
 0396           L51:
 0396                   .dbline 156
 0396           ;                                       if (Key == 0x08) break;
 0396 80910000          lds R24,_Key
 039A 8830              cpi R24,8
 039C 09F4              brne L53
 039E                   .dbline 156
 039E 01C0              xjmp L42
 03A0           L53:
 03A0                   .dbline 157
 03A0           L41:
 03A0                   .dbline 139
 03A0 9ACF              xjmp L40
 03A2           L42:
 03A2                   .dbline 158
 03A2           ;                                       }
 03A2           ;                     GetDir(Cluster,Page*SONGPAGE,SONGPAGE,TRUE); 
 03A2 81E0              ldi R24,1
 03A4 90E0              ldi R25,0
 03A6 9D83              std y+5,R25
 03A8 8C83              std y+4,R24
 03AA 85E0              ldi R24,5
 03AC 9B83              std y+3,R25
 03AE 8A83              std y+2,R24
 03B0 05E0              ldi R16,5
 03B2 10E0              ldi R17,0
 03B4 9701              movw R18,R14
 03B6 0E940000          xcall empy16s
 03BA 1983              std y+1,R17
 03BC 0883              std y+0,R16
 03BE FE01              movw R30,R28
 03C0 0489              ldd R16,z+20
 03C2 1589              ldd R17,z+21
 03C4 2689              ldd R18,z+22
 03C6 3789              ldd R19,z+23
 03C8 0E940000          xcall _GetDir
 03CC                   .dbline 159
 03CC           ;                         RemoteSendScreen(DIR,(FilePtr%SONGPAGE));
 03CC 25E0              ldi R18,5
 03CE 30E0              ldi R19,0
 03D0 8501              movw R16,R10
 03D2 0E940000          xcall mod16s
 03D6 202F              mov R18,R16
 03D8 01E0              ldi R16,1
 03DA 0E940000          xcall _RemoteSendScreen
 03DE                   .dbline 160
 03DE           ;                         Key = 0;
 03DE 2224              clr R2
 03E0 20920000          sts _Key,R2
 03E4                   .dbline 161
 03E4           ;                         }
 03E4           L37:
 03E4                   .dbline 162
 03E4           ;                  }    
 03E4           L34:
 03E4                   .dbline 163
 03E4           L4:
 03E4                   .dbline 59
 03E4 53CE              xjmp L7
 03E6           X1:
 03E6                   .dbline -2
 03E6           L2:
 03E6 2A96              adiw R28,10
 03E8 0E940000          xcall pop_gset5
 03EC 2496              adiw R28,4
 03EE                   .dbline 0 ; func end
 03EE 0895              ret
 03F0                   .dbsym l ch 7 c
 03F0                   .dbsym l LastCluster 6 l
 03F0                   .dbsym r MaxFile 12 i
 03F0                   .dbsym r Page 14 I
 03F0                   .dbsym r FilePtr 10 I
 03F0                   .dbsym l Cluster 20 l
 03F0                   .dbend
 03F0                   .dbfunc e _StackOverflowed __StackOverflowed fV
 03F0           ;              c -> R16
                        .even
 03F0           __StackOverflowed::
 03F0                   .dbline -1
 03F0                   .dbline 170
 03F0           ;               }
 03F0           ; }
 03F0           ; 
 03F0           ; //*************************************
 03F0           ; // void _StackOverflowed(char c)
 03F0           ; //*************************************
 03F0           ; void _StackOverflowed(char c)
 03F0           ;       {
 03F0                   .dbline 171
 03F0           ;       CLI();
 03F0 F894              cli
 03F2           L56:
 03F2                   .dbline 172
 03F2           L57:
 03F2                   .dbline 172
 03F2 FFCF              xjmp L56
 03F4           X5:
 03F4                   .dbline -2
 03F4           L55:
 03F4                   .dbline 0 ; func end
 03F4 0895              ret
 03F6                   .dbsym r c 16 c
 03F6                   .dbend
 03F6                   .dbfunc e PlayMP3 _PlayMP3 fI
 03F6           ;        Percent -> y+32
 03F6           ;       ByteSend -> y+28
 03F6           ;    NextCluster -> y+24
 03F6           ;            LBA -> y+20
 03F6           ;              i -> y+16
 03F6           ;              j -> y+12
 03F6           ;        TimeOut -> y+8
                        .even
 03F6           _PlayMP3::
 03F6 0E940000          xcall push_gset2
 03FA A497              sbiw R28,36
 03FC                   .dbline -1
 03FC                   .dbline 182
 03FC           ;       while(1);
 03FC           ;       }
 03FC           ; 
 03FC           ; //*************************************
 03FC           ; // int PlayMP3(void)
 03FC           ; //
 03FC           ; // return 0 -> Error
 03FC           ; // return 1 -> successfull play
 03FC           ; //*************************************
 03FC           ; int PlayMP3(void)
 03FC           ; {
 03FC                   .dbline 188
 03FC           ; extern unsigned char SectorBuffer[512];
 03FC           ; unsigned long LBA,i,j,NextCluster,TimeOut,ByteSend,Percent;
 03FC           ; extern struct FileInfo File;
 03FC           ; extern struct BootRecord Boot;
 03FC           ; 
 03FC           ; VS1001Init(SOFT);
 03FC 0027              clr R16
 03FE 0E940000          xcall _VS1001Init
 0402                   .dbline 189
 0402           ; Key = 0;
 0402 2224              clr R2
 0404 20920000          sts _Key,R2
 0408                   .dbline 190
 0408           ; ByteSend = 0;
 0408 40E0              ldi R20,0
 040A 50E0              ldi R21,0
 040C 60E0              ldi R22,0
 040E 70E0              ldi R23,0
 0410 FE01              movw R30,R28
 0412 448F              std z+28,R20
 0414 558F              std z+29,R21
 0416 668F              std z+30,R22
 0418 778F              std z+31,R23
 041A                   .dbline 191
 041A           ; NextCluster = File.FirstClust;
 041A 40900601          lds R4,_File+260+2
 041E 50900701          lds R5,_File+260+2+1
 0422 20900401          lds R2,_File+260
 0426 30900501          lds R3,_File+260+1
 042A FE01              movw R30,R28
 042C 208E              std z+24,R2
 042E 318E              std z+25,R3
 0430 428E              std z+26,R4
 0432 538E              std z+27,R5
 0434 24C1              xjmp L62
 0436           L61:
 0436                   .dbline 193
 0436           ; while (1)
 0436           ;         {
 0436                   .dbline 194
 0436           ;         LBA = Clust2LBA(NextCluster);
 0436 FE01              movw R30,R28
 0438 008D              ldd R16,z+24
 043A 118D              ldd R17,z+25
 043C 228D              ldd R18,z+26
 043E 338D              ldd R19,z+27
 0440 0E940000          xcall _Clust2LBA
 0444 FE01              movw R30,R28
 0446 048B              std z+20,R16
 0448 158B              std z+21,R17
 044A 268B              std z+22,R18
 044C 378B              std z+23,R19
 044E                   .dbline 195
 044E           ;         for (i=0;i<Boot.SecPerClust;i++)
 044E 40E0              ldi R20,0
 0450 50E0              ldi R21,0
 0452 60E0              ldi R22,0
 0454 70E0              ldi R23,0
 0456 FE01              movw R30,R28
 0458 408B              std z+16,R20
 045A 518B              std z+17,R21
 045C 628B              std z+18,R22
 045E 738B              std z+19,R23
 0460 A4C0              xjmp L67
 0462           L64:
 0462                   .dbline 196
 0462           ;                 {
 0462                   .dbline 197
 0462           ;                 ata_read_sector_byte(0, LBA+i, 0, 512, (unsigned char*)&SectorBuffer);
 0462 80E0              ldi R24,<_SectorBuffer
 0464 90E0              ldi R25,>_SectorBuffer
 0466 9F83              std y+7,R25
 0468 8E83              std y+6,R24
 046A 80E0              ldi R24,512
 046C 92E0              ldi R25,2
 046E 9D83              std y+5,R25
 0470 8C83              std y+4,R24
 0472 2224              clr R2
 0474 3324              clr R3
 0476 3B82              std y+3,R3
 0478 2A82              std y+2,R2
 047A FE01              movw R30,R28
 047C 2088              ldd R2,z+16
 047E 3188              ldd R3,z+17
 0480 4288              ldd R4,z+18
 0482 5388              ldd R5,z+19
 0484 FE01              movw R30,R28
 0486 6488              ldd R6,z+20
 0488 7588              ldd R7,z+21
 048A 8688              ldd R8,z+22
 048C 9788              ldd R9,z+23
 048E 620C              add R6,R2
 0490 731C              adc R7,R3
 0492 841C              adc R8,R4
 0494 951C              adc R9,R5
 0496 8882              std y+0,R8
 0498 9982              std y+1,R9
 049A 9301              movw R18,R6
 049C 0027              clr R16

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -