ui_stop.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,133 行 · 第 1/4 页

LST
1,133
字号
   \   027B            ?0042:
    154                          {
    155                              StartIntro(TRUE);
   \   027B  3E01              LD      A,1
   \   027D  1801              JR      ?0112
    156                          }
    157                          else
   \   027F            ?0043:
    158                          {
    159                              StartIntro(FALSE);
   \   027F  AF                XOR     A
   \   0280            ?0112:
   \   0280  320000            LD      (g_introCntMode),A
   \   0283  3A4D00            LD      A,(g_music_vars+77)
   \   0286  320000            LD      (g_OldSecTempBackup),A
   \   0289  AF                XOR     A
   \   028A  320000            LD      (g_introCNT),A
   \   028D            ?0044:
    160                          }
    161                          if ((!CaltimeFlag) && (!ifSelBuffToltalTimeFlag))
   \   028D  3A0100            LD      A,(CaltimeFlag)
   \   0290  B7                OR      A
   \   0291  2009              JR      NZ,?0046
   \   0293  3A0000            LD      A,(ifSelBuffToltalTimeFlag)
   \   0296  B7                OR      A
   \   0297  2003              JR      NZ,?0046
   \   0299            ?0048:
   \   0299            ?0047:
   \   0299            ?0045:
    162                          {
    163                              musicpSendCommand(MC_CALTIME, NULL);
   \   0299  CDA301            CALL    LWRD ?0145
   \   029C            ?0046:
    164                          }
    165          
    166                          //判断是否刚断电完而没有重设时间
    167                          if (g_PowerOffFlag == 0x55)
   \   029C  3A0000            LD      A,(g_PowerOffFlag)
   \   029F  FE55              CP      85
   \   02A1  200D              JR      NZ,?0052
   \   02A3            ?0049:
    168                          {
    169                               if (!DisplayTimeRollback())
   \   02A3  3E00              LD      A,BYTE3 DisplayTimeRollback
   \   02A5  210000            LD      HL,LWRD DisplayTimeRollback
   \   02A8  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02AB  2C                INC     L
   \   02AC  2D                DEC     L
   \   02AD  CA4304            JP      Z,?0123
   \   02B0            ?0051:
    170                              {
    171                                    SetFullInterface();
    172                                    need_draw = TRUE;
    173                                  break;
   \   02B0            ?0052:
   \   02B0            ?0050:
    174                              }
    175                          }
    176          
    177                          UpDisplayFlag = UpDisplayFlag | up_musictotaltime | up_musicbitrate;
   \   02B0  210000            LD      HL,UpDisplayFlag
   \   02B3  23                INC     HL
   \   02B4  7E                LD      A,(HL)
   \   02B5  F621              OR      33
   \   02B7  77                LD      (HL),A
    178                          need_draw = TRUE;
   \   02B8  3E01              LD      A,1
   \   02BA  320000            LD      (need_draw),A
    179          
    180          
    181                          output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   02BD  DB4E              IN      A,(78)
   \   02BF  CBDF              SET     3,A
   \   02C1  D34E              OUT     (78),A
    182                          if (!musicpSendCommand(MC_PLAY, g_music_vars.MusicOpenMod))
   \   02C3  ED4B0600          LD      BC,(g_music_vars+6)
   \   02C7  0600              LD      B,0
   \   02C9  1E04              LD      E,4
   \   02CB  CDA701            CALL    LWRD ?0143
   \   02CE  2C                INC     L
   \   02CF  2D                DEC     L
   \   02D0  200F              JR      NZ,?0054
   \   02D2            ?0053:
    183                          {
    184                              ErrReport(PlayStatus);// playStatus 并未改变
   \   02D2  ED5B0000          LD      DE,(PlayStatus)
   \   02D6  3E00              LD      A,BYTE3 ErrReport
   \   02D8  210000            LD      HL,LWRD ErrReport
   \   02DB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    185                              break;
   \   02DE  C36604            JP      LWRD ?0027
   \   02E1            ?0054:
    186                          }
    187                          output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   02E1  DB4E              IN      A,(78)
   \   02E3  CBDF              SET     3,A
   \   02E5  D34E              OUT     (78),A
    188          
    189                          g_result = ui_play();
   \   02E7  3E00              LD      A,BYTE3 ui_play
   \   02E9  210000            LD      HL,LWRD ui_play
   \   02EC  CD5B01            CALL    LWRD ?0138
    190          
    191                          ap_message_init(NULL);//开始算STANDBY 时间
   \   02EF  CDDD00            CALL    LWRD ?0136
    192                          if (g_result != 0)
   \   02F2  2A0000            LD      HL,(g_result)
   \   02F5  7D                LD      A,L
   \   02F6  B4                OR      H
   \   02F7  2843              JR      Z,?0056
   \   02F9            ?0055:
    193                          {
    194                              int i;
    195                              i = g_result;
   \   02F9  DD75FD            LD      (IX-3),L
   \   02FC  DD74FE            LD      (IX-2),H
    196                              if(PlayStatus != StopSta)
   \   02FF  3A0000            LD      A,(PlayStatus)
   \   0302  B7                OR      A
   \   0303  282C              JR      Z,?0058
   \   0305            ?0057:
    197                              {
    198                                #ifdef OPT_Sup_FadeOut_fun
    199                                    if (!g_FCexitflag)
   \   0305  3A0000            LD      A,(g_FCexitflag)
   \   0308  B7                OR      A
   \   0309  2009              JR      NZ,?0060
   \   030B            ?0059:
    200                                    {    //如从跟读对录音或对比放音出,不淡出
    201                                      FadeOut(FALSE);
   \   030B  5F                LD      E,A
   \   030C  3E00              LD      A,BYTE3 FadeOut
   \   030E  210000            LD      HL,LWRD FadeOut
   \   0311  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0314            ?0060:
    202                                  }
    203                                #endif
    204                                  BackupCurrentTime();
   \   0314  3E00              LD      A,BYTE3 BackupCurrentTime
   \   0316  210000            LD      HL,LWRD BackupCurrentTime
   \   0319  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    205                                  musicpSendCommand(MC_STOP, NULL);
   \   031C  010000            LD      BC,0
   \   031F  1E06              LD      E,6
   \   0321  CDA701            CALL    LWRD ?0143
    206                                  musicpSendCommand(MC_BACKUP, NULL);
   \   0324  010000            LD      BC,0
   \   0327  1E44              LD      E,68
   \   0329  CDA701            CALL    LWRD ?0143
    207                                  g_music_vars.MusicOpenMod = Nor_Break_open;//保证退出后从断点进来
   \   032C  3E01              LD      A,1
   \   032E  320600            LD      (g_music_vars+6),A
   \   0331            ?0058:
    208                              }
    209                              g_result = i;
   \   0331  DD6EFD            LD      L,(IX-3)
   \   0334  DD66FE            LD      H,(IX-2)
   \   0337  220000            LD      (g_result),HL
    210                          }
    211                         else
   \   033A  1806              JR      ?0062
   \   033C            ?0056:
   \   033C            ?0063:
    212                           while(ap_get_message() != 0);                   //清空消息池
   \   033C  CD0000            CALL    LWRD ap_get_message
   \   033F  B7                OR      A
   \   0340  20FA              JR      NZ,?0056
   \   0342            ?0064:
   \   0342            ?0062:
   \   0342            ?0061:
    213                          g_FCexitflag = FALSE;
   \   0342  AF                XOR     A
   \   0343  320000            LD      (g_FCexitflag),A
    214          
    215                          return g_result;
   \   0346  1835              JR      ?0114
    216          
    217                      case AP_KEY_EQ | AP_KEY_UP:
   \   0348            ?0065:
    218                          break;
   \   0348            ?0066:
    219          
    220                      case AP_KEY_MODE:
    221                          modekeystore = key;
   \   0348  DD73F9            LD      (IX-7),E
    222                          break;
   \   034B  C36604            JP      LWRD ?0027
   \   034E            ?0067:
    223          
    224                      case AP_KEY_MODE | AP_KEY_UP: //短按MODE
    225                          if (modekeystore != AP_KEY_MODE)
   \   034E  DD7EF9            LD      A,(IX-7)
   \   0351  FE10              CP      16
   \   0353  2807              JR      Z,?0069
   \   0355            ?0068:
    226                          {    //要先按了AP_KEY_MODE 键后up才算有效
    227                              modekeystore = NULL;
   \   0355  DD36F900          LD      (IX-7),0
    228                              break;
   \   0359  C36604            JP      LWRD ?0027
   \   035C            ?0069:
    229                          }
    230                          g_result = ui_stop_menu();
   \   035C  3E00              LD      A,BYTE3 ui_stop_menu
   \   035E  210000            LD      HL,LWRD ui_stop_menu
   \   0361  CD5B01            CALL    LWRD ?0138
    231          
    232          
    233                          if (g_result == RESULT_IGNORE)
   \   0364  3E34              LD      A,52
   \   0366  AD                XOR     L
   \   0367  B4                OR      H
   \   0368  CA4304            JP      Z,?0123
   \   036B            ?0070:
    234                          {
    235                              SetFullInterface();
    236                              need_draw = TRUE;
    237                              break;
   \   036B            ?0071:
    238                          }
    239                          CaltimeFlag = FALSE;
   \   036B  AF                XOR     A
   \   036C  320100            LD      (CaltimeFlag),A
    240                          ifSelBuffToltalTimeFlag = FALSE;
   \   036F  320000            LD      (ifSelBuffToltalTimeFlag),A
    241          
    242                          if (g_result == RESULT_SD_OUT)
   \   0372  3E36              LD      A,54
   \   0374  AD                XOR     L
   \   0375  B4                OR      H
   \   0376  CA3504            JP      Z,?0115
   \   0379            ?0072:
    243                          {
    244                              return RESULT_CURR_UI;
    245                          }
   \   0379            ?0073:
    246                          PlayStatus=StopSta;
   \   0379  AF                XOR     A
   \   037A  320000            LD      (PlayStatus),A
    247                          return g_result;//热键或等于0时返回
   \   037D            ?0114:
   \   037D  C31504            JP      LWRD ?0116
    248          
    249          
    250          
    251                      case AP_KEY_PREV | AP_KEY_UP:
   \   0380            ?0074:
   \   0380            ?0076:
    252                          while(ap_get_message() != 0);
   \   0380  CD0000            CALL    LWRD ap_get_message
   \   0383  B7                OR      A
   \   0384  20FA              JR      NZ,?0074
   \   0386            ?0077:
    253                          break;
   \   0386            ?0075:
   \   0386  C36604            JP      LWRD ?0027
   \   0389            ?0078:
    254          
    255                      case AP_KEY_PREV:
    256                      case AP_KEY_PREV | AP_KEY_HOLD:
    257                          musicpSendCommand(MC_CLOSE, NULL);
   \   0389  4F                LD      C,A
   \   038A  47                LD      B,A
   \   038B  1E02              LD      E,2
   \   038D  CDA701            CALL    LWRD ?0143
    258                          g_result = ChangeMusic(Music_Prev, Stop_key);
   \   0390  0E00              LD      C,0
   \   0392  1E04              LD      E,4
    259                          FSELSetMode( FSEL_ALL_REPEATALL );
    260                          FSELGetNext(g_music_vars.location.filename);
    261                          fselGetLocation(& g_music_vars.location);
    262                          GetInformation();
   \   0394  CD6201            CALL    LWRD ?0141
    263                          memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
    264                         FSELGetPrev(g_music_vars.location.filename);
    265                         fselGetLocation(& g_music_vars.location);
    266                         FSELSetMode(g_music_vars.repeat_mode);
    267                         GetInformation(); //取文件信息
   \   0397  CDE800            CALL    LWRD ?0137
    268                          musicpSendCommand( MC_OPEN, (int)& g_Openparam );//这个可不用
    269                          g_result = musicpSendCommand(MC_LOAD, NULL);
    270                          CaltimeFlag = FALSE;//等待计时间
    271                          WaitForCaltimeCNT = 0;
    272                          SetFullInterface();

⌨️ 快捷键说明

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