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

📄 mp3player.lis

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

⌨️ 快捷键说明

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