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

📄 music_list_menu.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
    196                            break; 
   \   0449            ?0046:
    197                        }  
    198          //              top_list = active_list/ListDisplayNum)*ListDisplayNum;  //计算列表头
    199                        ui_music_list(active_list,old_list,0);              
   \   0449  48                LD      C,B
   \   044A  C5                PUSH    BC
   \   044B  CD3605            CALL    LWRD ?0094
   \   044E  E1                POP     HL
    200                      }        
    201                     else                 //到列表尾,回到列表头
   \   044F  1808              JR      ?0047
   \   0451            ?0044:
    202                     {           
    203                         active_list = 0;
    204                         need_draw = 1;
   \   0451  FD210000          LD      IY,0
   \   0455  DD36F801          LD      (IX-8),1
   \   0459            ?0047:
    205                     }    
    206                    break;
   \   0459  C30A05            JP      LWRD ?0067
   \   045C            ?0048:
    207                              
    208                    case AP_KEY_PREV:
    209                    case AP_KEY_PREV | AP_KEY_HOLD:
    210                      if(active_list==0)
   \   045C  7D                LD      A,L
   \   045D  B4                OR      H
   \   045E  201B              JR      NZ,?0050
   \   0460            ?0049:
    211                       {                         
    212                        active_list = g_file_list_total-1;  //选中最后一项
   \   0460  21FFFF            LD      HL,65535
   \   0463  ED4B0000          LD      BC,(g_file_list_total)
   \   0467  09                ADD     HL,BC
   \   0468  E5                PUSH    HL
   \   0469  FDE1              POP     IY
    213                        if(active_list/OneSectorListNum>0)
   \   046B  010700            LD      BC,7
   \   046E  EB                EX      DE,HL
   \   046F  CD0000            CALL    LWRD ?US_DIV_L02
   \   0472  7B                LD      A,E
   \   0473  B2                OR      D
   \   0474  283C              JR      Z,?0056
   \   0476            ?0051:
    214                         ReadOneSectorData((active_list/ListDisplayNum)*ListDisplayNum);
   \   0476  CDF800            CALL    LWRD ?0081
   \   0479            ?0052:
    215                        need_draw = 1;    
   \   0479  1837              JR      ?0056
    216                        break;             
   \   047B            ?0050:
    217                       } 
    218                      else
    219                      {                         
    220                       if((active_list%ListDisplayNum)==0)   //是否显示上一屏
   \   047B  010600            LD      BC,6
   \   047E  FDE5              PUSH    IY
   \   0480  D1                POP     DE
   \   0481  CD0000            CALL    LWRD ?US_MOD_L02
   \   0484  7B                LD      A,E
   \   0485  B2                OR      D
   \   0486  2030              JR      NZ,?0054
   \   0488            ?0053:
    221                       { 
    222                        LastSeekNum = (active_list)/OneSectorListNum;
   \   0488  03                INC     BC
   \   0489  FDE5              PUSH    IY
   \   048B  D1                POP     DE
   \   048C  CD0000            CALL    LWRD ?US_DIV_L02
   \   048F  ED533D02          LD      (LastSeekNum),DE
    223                        active_list--;  
    224                        ActiveSeekNum =((active_list/ListDisplayNum)*ListDisplayNum)/OneSectorListNum ;  
   \   0493  0B                DEC     BC
   \   0494  FD2B              DEC     IY
   \   0496  FDE5              PUSH    IY
   \   0498  D1                POP     DE
   \   0499  CD9C03            CALL    LWRD ?0091
   \   049C  EB                EX      DE,HL
   \   049D  010700            LD      BC,7
   \   04A0  CD0000            CALL    LWRD ?US_DIV_L02
   \   04A3  ED533B02          LD      (ActiveSeekNum),DE
    225                        if(ActiveSeekNum!=LastSeekNum)   
   \   04A7  2A3D02            LD      HL,(LastSeekNum)
   \   04AA  A7                AND     A
   \   04AB  ED52              SBC     HL,DE
   \   04AD  2803              JR      Z,?0056
   \   04AF            ?0055:
    226                         ReadOneSectorData((active_list/ListDisplayNum)*ListDisplayNum); 
   \   04AF  CDF800            CALL    LWRD ?0081
   \   04B2            ?0056:
    227                        need_draw = 1; 
   \   04B2  DD36F801          LD      (IX-8),1
    228                        break;   
   \   04B6  1852              JR      ?0067
   \   04B8            ?0054:
    229                       }   
    230                       active_list--;  
    231                       ui_music_list(active_list,old_list,0);                                  
   \   04B8  48                LD      C,B
   \   04B9  FD2B              DEC     IY
   \   04BB  1848              JR      ?0074
    232                      }    
    233                      break;
   \   04BD            ?0057:
    234                          
    235                    case AP_KEY_PLAY | AP_KEY_UP:    //取消退出
    236                      result = RESULT_IGNORE;   
    237                      break;
   \   04BD            ?0058:
    238                                            
    239                    case AP_KEY_MODE | AP_KEY_UP:    //确认退出
    240                    case AP_KEY_MODE | AP_KEY_LONG:    //确认退出      
    241                    memcpy(&g_music_vars.location, &active_location,OneLocationBYTE);  
   \   04BD  012900            LD      BC,41
   \   04C0  110700            LD      DE,g_music_vars+7
   \   04C3  210002            LD      HL,active_location
   \   04C6  EDB0              LDIR
    242                    g_music_vars.file_list_num = active_list;          //记录当前列表序号 
   \   04C8  FD225A00          LD      (g_music_vars+90),IY
    243                    result = 0;
   \   04CC  AF                XOR     A
   \   04CD  DD77FA            LD      (IX-6),A
   \   04D0  DD77FB            LD      (IX-5),A
    244                      break;
   \   04D3  1835              JR      ?0067
   \   04D5            ?0059:
    245                                     
    246                    case AP_MSG_WAIT_TIMEOUT:
    247                      result = RESULT_IGNORE;   
   \   04D5  DD36FA34          LD      (IX-6),52
   \   04D9  DD36FB00          LD      (IX-5),0
    248                      break;
   \   04DD  182B              JR      ?0067
   \   04DF            ?0060:
    249                                         
    250                    default:
    251                       key = ap_handle_hotkey(key);
   \   04DF  CD0000            CALL    LWRD ap_handle_hotkey
   \   04E2  DD77F9            LD      (IX-7),A
    252                       if(key == RESULT_REDRAW) 
   \   04E5  FE32              CP      50
   \   04E7  2006              JR      NZ,?0062
   \   04E9            ?0061:
    253                         need_draw = TRUE;
   \   04E9  DD36F801          LD      (IX-8),1
    254                       else 
   \   04ED  180E              JR      ?0065
   \   04EF            ?0062:
    255                        if(key != 0)
   \   04EF  AF                XOR     A
   \   04F0  DDB6F9            OR      (IX-7)
   \   04F3  2808              JR      Z,?0065
   \   04F5            ?0064:
    256                        {
    257                          result = key;
   \   04F5  DD77FA            LD      (IX-6),A
   \   04F8  0600              LD      B,0
   \   04FA  DD70FB            LD      (IX-5),B
   \   04FD            ?0065:
   \   04FD            ?0063:
    258                        }    
    259                      if(ScrollFlag)
   \   04FD  3A0000            LD      A,(ScrollFlag)
   \   0500  B7                OR      A
   \   0501  2807              JR      Z,?0067
   \   0503            ?0066:
    260                        ui_music_list(active_list,old_list,1);         //滚动屏幕                         
   \   0503  0E01              LD      C,1
   \   0505            ?0074:
   \   0505  C5                PUSH    BC
   \   0506  CD3605            CALL    LWRD ?0094
   \   0509  E1                POP     HL
   \   050A            ?0067:
   \   050A            ?0041:
    261                  }    //switch
    262             
    263             if(result!=RESULT_LIST) 
   \   050A  3E69              LD      A,105
   \   050C  DDAEFA            XOR     (IX-6)
   \   050F  DDB6FB            OR      (IX-5)
   \   0512  281F              JR      Z,?0069
   \   0514            ?0068:
    264              {
    265               output8(0x27,IO27Bak&0xfe);     
   \   0514  DD46FE            LD      B,(IX-2)
   \   0517  CB80              RES     0,B
   \   0519  78                LD      A,B
   \   051A  D327              OUT     (39),A
    266               FS_FClose(list_fp); 
   \   051C  ED5B0000          LD      DE,(list_fp)
   \   0520  CD0000            CALL    LWRD FS_FClose
    267               output8(0x27,IO27Bak);     
   \   0523  DD7EFE            LD      A,(IX-2)
   \   0526  D327              OUT     (39),A
    268               return result;        
   \   0528  DD6EFA            LD      L,(IX-6)
   \   052B  DD66FB            LD      H,(IX-5)
    269              }   
   \   052E  FDE1              POP     IY
   \   0530  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0533            ?0069:
    270           }      //while    
    271          }  
   \   0533  C3E803            JP      LWRD ?0037
   \   0536            ?0094:
   \   0536  DD4EFC            LD      C,(IX-4)
   \   0539  DD46FD            LD      B,(IX-3)
   \   053C            ?0093:
   \   053C  FDE5              PUSH    IY
   \   053E  D1                POP     DE
   \   053F  3E00              LD      A,BYTE3 ui_music_list
   \   0541  217E01            LD      HL,LWRD ui_music_list
   \   0544  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0547            ReadOneSectorData:
    272          
    273          void ReadOneSectorData(unsigned int currentlist)
    274          {
   \   0547  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   054A  FEFF              DEFW    -2
   \   054C  FDE5              PUSH    IY
    275            BYTE BAKIO27 = input8(0x27); 
   \   054E  DB27              IN      A,(39)
   \   0550  DD77FE            LD      (IX-2),A
    276            unsigned int CurrentSeekNum = currentlist/OneSectorListNum;    
   \   0553  CDA603            CALL    LWRD ?0092
    277            output8(0x27,BAKIO27&0xfe);        //关dsp中断,防止内存页冲突      
   \   0556  CB87              RES     0,A
   \   0558  D327              OUT     (39),A
    278            FS_FSeek((long)CurrentSeekNum, SEEK_SET, list_fp);         
   \   055A  2A0000            LD      HL,(list_fp)
   \   055D  E5                PUSH    HL
   \   055E  48                LD      C,B
   \   055F  C5                PUSH    BC
   \   0560  CD0000            CALL    LWRD FS_FSeek
   \   0563  E1                POP     HL
   \   0564  E1                POP     HL
    279            FS_FRead(ReadListBuffer,1,list_fp);            
   \   0565  2A0000            LD      HL,(list_fp)
   \   0568  E5                PUSH    HL
   \   0569  0E01              LD      C,1
   \   056B  110000            LD      DE,ReadListBuffer
   \   056E  CD0000            CALL    LWRD FS_FRead
   \   0571  E1                POP     HL
    280            output8(0x27,BAKIO27);  
   \   0572  DD7EFE            LD      A,(IX-2)
   \   0575  D327              OUT     (39),A
    281          }
   \   0577  FDE1              POP     IY
   \   0579  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0000                    RSEG    APC_MUSIC_LIST
   \   0000            BLANKSTRING:
   \   0000  5B5D2D2D          DEFB    '[]--'
   \   0000                    RSEG    APD_MUSIC_LIST
   \   0000            ReadListBuffer:
   \   0200                    DEFS    512
   \   0200            active_location:
   \   022B                    DEFS    43
   \   022B            BlankInfor:
   \   023B                    DEFS    16
   \   023B            ActiveSeekNum:
   \   023D                    DEFS    2
   \   023D            LastSeekNum:
   \   023F                    DEFS    2
   \   023F            HeadIDDisplay:
   \   0241                    DEFS    2
   \   0241                    END

Errors: none
Warnings: none
Code size: 1404
Constant size: 4
Static variable size: Data(577) Iram(0)

⌨️ 快捷键说明

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