sub_function1.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,380 行 · 第 1/5 页

LST
1,380
字号
    178                         fselGetLocation(& g_music_vars.location); 
   \   01D2  CDE202            CALL    LWRD ?0224
    179                         return FALSE;
   \   01D5  1822              JR      ?0053
    180                       } 
   \   01D7            ?0051:
    181                       break;          
   \   01D7            ?0049:
    182                      }
    183                      ifSelBuffToltalTimeFlag = FALSE;
   \   01D7  AF                XOR     A
   \   01D8  320000            LD      (ifSelBuffToltalTimeFlag),A
    184                      result = FSELGetNext(g_music_vars.location.filename);
   \   01DB  112100            LD      DE,g_music_vars+33
   \   01DE  3E00              LD      A,BYTE3 fselGetNextFile
   \   01E0  210000            LD      HL,LWRD fselGetNextFile
   \   01E3  180C              JR      ?0184
    185                      break;
   \   01E5            ?0052:
    186          
    187                  case Music_Prev:
    188                      ifSelBuffToltalTimeFlag = FALSE;
   \   01E5  AF                XOR     A
   \   01E6  320000            LD      (ifSelBuffToltalTimeFlag),A
    189                      result = FSELGetPrev(g_music_vars.location.filename);
   \   01E9  112100            LD      DE,g_music_vars+33
   \   01EC  3E00              LD      A,BYTE3 fselGetPrevFile
   \   01EE  210000            LD      HL,LWRD fselGetPrevFile
   \   01F1            ?0184:
   \   01F1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01F4  DD75FE            LD      (IX-2),L
    190                      break;
   \   01F7  1803              JR      ?0043
   \   01F9            ?0053:
    191          
    192                  default:
    193                      return FALSE;
   \   01F9  C39A02            JP      LWRD ?0190
    194              }
   \   01FC            ?0043:
    195          
    196              if (!result)
   \   01FC  AF                XOR     A
   \   01FD  DDB6FE            OR      (IX-2)
   \   0200  2009              JR      NZ,?0055
   \   0202            ?0054:
    197              {
    198                  fselSetLocation(& g_music_vars.location);
   \   0202  CDF802            CALL    LWRD ?0226
    199                  return result;
   \   0205  DD6EFE            LD      L,(IX-2)
    200              }
   \   0208  C3CA02            JP      LWRD ?0076
   \   020B            ?0055:
    201          
    202          #ifdef ACTIVE_USERPL
    203              bList_Flag = FALSE;
   \   020B  AF                XOR     A
   \   020C  320000            LD      (bList_Flag),A
    204          #endif  
    205              //取当前歌曲数状态
    206              g_musicamount = FSELGetTotal();
   \   020F  3E00              LD      A,BYTE3 fselGetTotal
   \   0211  210000            LD      HL,LWRD fselGetTotal
   \   0214  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0217  220000            LD      (g_musicamount),HL
    207              g_musicsequence = FSELGetNo();
   \   021A  3E00              LD      A,BYTE3 fselGetNo
   \   021C  210000            LD      HL,LWRD fselGetNo
   \   021F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0222  220000            LD      (g_musicsequence),HL
    208              FSELSetMode(g_music_vars.repeat_mode);
   \   0225  CDD602            CALL    LWRD ?0223
    209          
    210              //确保选择器与AP的目录对应
    211              fselGetLocation(& g_music_vars.location);
   \   0228  CDED02            CALL    LWRD ?0225
    212           }     //没有选择列表
    213          
    214           else         //选择列表
   \   022B  187E              JR      ?0056
   \   022D            ?0033:
    215           {
    216            switch (Direct)
   \   022D  DD7E02            LD      A,(IX+2)
   \   0230  FE02              CP      2
   \   0232  2006              JR      NZ,?0059
   \   0234            ?0058:
    217            {
    218                case Music_Cur:
    219                      result = TRUE;
   \   0234  DD36FE01          LD      (IX-2),1
    220                      break;
   \   0238  184F              JR      ?0057
   \   023A            ?0059:
   \   023A  FE03              CP      3
   \   023C  2028              JR      NZ,?0066
    221          
    222                  case Music_Next:  
    223                      if(mod==list_key)                //从播放列表选择文件模式      
   \   023E  DD7E04            LD      A,(IX+4)
   \   0241  FE03              CP      3
   \   0243  2844              JR      Z,?0057
   \   0245            ?0060:
    224                      { 
    225                       break;          
   \   0245            ?0061:
    226                      }
    227                      if((mod==Play_key) &&(g_music_vars.file_list_num ==g_file_list_total-1))    //最后一首停止
   \   0245  47                LD      B,A
   \   0246  05                DEC     B
   \   0247  05                DEC     B
   \   0248  2014              JR      NZ,?0063
   \   024A  2A5A00            LD      HL,(g_music_vars+90)
   \   024D  E5                PUSH    HL
   \   024E  21FFFF            LD      HL,65535
   \   0251  ED4B0000          LD      BC,(g_file_list_total)
   \   0255  09                ADD     HL,BC
   \   0256  4D                LD      C,L
   \   0257  44                LD      B,H
   \   0258  E1                POP     HL
   \   0259  A7                AND     A
   \   025A  ED42              SBC     HL,BC
   \   025C  283C              JR      Z,?0190
   \   025E            ?0065:
   \   025E            ?0064:
   \   025E            ?0062:
    228                      return FALSE;
   \   025E            ?0063:
    229                      ifSelBuffToltalTimeFlag = FALSE;
   \   025E  AF                XOR     A
   \   025F  320000            LD      (ifSelBuffToltalTimeFlag),A
    230                      result = select_music_list(Music_Next);  //选择下一首
   \   0262  1E03              LD      E,3
   \   0264  1818              JR      ?0185
    231                      break;
   \   0266            ?0066:
   \   0266  FE04              CP      4
   \   0268  201F              JR      NZ,?0057
    232          
    233                  case Music_Prev:      
    234                      if((mod==Play_key) &&(g_music_vars.file_list_num ==0)) 
   \   026A  DD4604            LD      B,(IX+4)
   \   026D  05                DEC     B
   \   026E  05                DEC     B
   \   026F  2007              JR      NZ,?0068
   \   0271  2A5A00            LD      HL,(g_music_vars+90)
   \   0274  7D                LD      A,L
   \   0275  B4                OR      H
   \   0276  2822              JR      Z,?0190
   \   0278            ?0070:
   \   0278            ?0069:
   \   0278            ?0067:
    235                      return FALSE;
   \   0278            ?0068:
    236                      
    237                      ifSelBuffToltalTimeFlag = FALSE;
   \   0278  AF                XOR     A
   \   0279  320000            LD      (ifSelBuffToltalTimeFlag),A
    238                      result = select_music_list(Music_Prev); //选择上一首
   \   027C  1E04              LD      E,4
   \   027E            ?0185:
   \   027E  3E00              LD      A,BYTE3 select_music_list
   \   0280  210000            LD      HL,LWRD select_music_list
   \   0283  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0286  DD75FE            LD      (IX-2),L
    239                      break;
   \   0289            ?0071:
    240          
    241                  default:
    242                      break;                
   \   0289            ?0057:
    243            }         
    244             if(result==RESULT_LIST_ERR)                   //列表不存在 
   \   0289  DD7EFE            LD      A,(IX-2)
   \   028C  FE6A              CP      106
   \   028E  280A              JR      Z,?0190
   \   0290            ?0072:
    245             {
    246               return FALSE;
    247             }     
   \   0290            ?0073:
    248             if(!fselSetLocation(& g_music_vars.location))   //文件已被删除
   \   0290  CDF802            CALL    LWRD ?0226
   \   0293  2C                INC     L
   \   0294  2D                DEC     L
   \   0295  2007              JR      NZ,?0075
   \   0297            ?0074:
    249             {
    250              DisplayErrMsg(MFILEOUT);                      //没有文件  
    251              fselGetLocation(& g_music_vars.location); 
   \   0297  CDE202            CALL    LWRD ?0224
    252              return FALSE;
   \   029A            ?0190:
   \   029A  2E00              LD      L,0
    253             } 
   \   029C  182C              JR      ?0076
   \   029E            ?0075:
    254             else
    255             { 
    256              g_musicamount = g_file_list_total;
   \   029E  2A0000            LD      HL,(g_file_list_total)
   \   02A1  220000            LD      (g_musicamount),HL
    257              g_musicsequence = g_music_vars.file_list_num+1;         //当前列表编号
   \   02A4  2A5A00            LD      HL,(g_music_vars+90)
   \   02A7  23                INC     HL
   \   02A8  220000            LD      (g_musicsequence),HL
   \   02AB            ?0056:
    258             }
    259           }    
    260              //检测Music的类型
    261               make_dirname();  //取目录名
   \   02AB  3E00              LD      A,BYTE3 make_dirname
   \   02AD  210000            LD      HL,LWRD make_dirname
   \   02B0  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    262              g_currentMusicType = CheckMusicType(g_music_vars.location.filename);
   \   02B3  112100            LD      DE,g_music_vars+33
   \   02B6  3E00              LD      A,BYTE3 CheckMusicType
   \   02B8  210000            LD      HL,LWRD CheckMusicType
   \   02BB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02BE  7D                LD      A,L
   \   02BF  320000            LD      (g_currentMusicType),A
    263              //找歌词文件并打开
    264             //清 WATCH_DOG
    265              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   02C2  DB4E              IN      A,(78)
   \   02C4  CBDF              SET     3,A
   \   02C6  D34E              OUT     (78),A
    266              return TRUE;
   \   02C8  2E01              LD      L,1
    267          }
   \   02CA            ?0076:
   \   02CA  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   02CD            ?0221:
   \   02CD  59                LD      E,C
   \   02CE            ?0220:
   \   02CE  3E00              LD      A,BYTE3 fselInit
   \   02D0  210000            LD      HL,LWRD fselInit
   \   02D3  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   02D6            ?0223:
   \   02D6  ED5B0100          LD      DE,(g_music_vars+1)
   \   02DA            ?0222:
   \   02DA  3E00              LD      A,BYTE3 fselSetMode
   \   02DC  210000            LD      HL,LWRD fselSetMode
   \   02DF  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   02E2            ?0224:
   \   02E2  111702            LD      DE,535
   \   02E5  3E00              LD      A,BYTE3 DisplayErrMsg
   \   02E7  210000            LD      HL,LWRD DisplayErrMsg
   \   02EA  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02ED            ?0225:
   \   02ED  110700            LD      DE,g_music_vars+7
   \   02F0  3E00              LD      A,BYTE3 fselGetLocation
   \   02F2  210000            LD      HL,LWRD fselGetLocation
   \   02F5  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   02F8            ?0226:
   \   02F8  110700            LD      DE,g_music_vars+7
   \   02FB  3E00              LD      A,BYTE3 fselSetLocation
   \   02FD  210000            LD      HL,LWRD fselSetLocation
   \   0300  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0303            musicpSendCommand_bank:
    268          
    269          //==================================================================
    270          bool musicpSendCommand_bank( BYTE cmd, int param )
    271          {
   \   0303  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0306  FEFF              DEFW    65534
   \   0308  FDE5              PUSH    IY
   \   030A  C5                PUSH    BC
   \   030B  FDE1              POP     IY
    272              bool result = FALSE;
    273              //根据不同的音乐类型发不同的命令
    274              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   030D  DB4E              IN      A,(78)
   \   030F  CBDF              SET     3,A
   \   0311  D34E              OUT     (78),A

⌨️ 快捷键说明

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