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

📄 ui_play.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   007F  3A0000            LD      A,(g_volcounter)
   \   0082  B7                OR      A
   \   0083  2005              JR      NZ,?0019
   \   0085            ?0018:
    103                                                  g_rSetPlayStatus = TRUE;
   \   0085  3E01              LD      A,1
   \   0087  320000            LD      (g_rSetPlayStatus),A
   \   008A            ?0019:
   \   008A            ?0017:
    104                            }
    105                      if(g_comval.EarProtect_flag)
   \   008A  3A1800            LD      A,(g_comval+24)
   \   008D  B7                OR      A
   \   008E  2813              JR      Z,?0021
   \   0090            ?0020:
    106                      {
    107                              g_music_vars.volume = input8(0x87)&0x1f;
   \   0090  DB87              IN      A,(135)
   \   0092  E61F              AND     31
   \   0094  320000            LD      (g_music_vars),A
    108                              ui_show_vol(g_music_vars.volume);
   \   0097  ED5B0000          LD      DE,(g_music_vars)
   \   009B  3E00              LD      A,BYTE3 ui_show_vol
   \   009D  210000            LD      HL,LWRD ui_show_vol
   \   00A0  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00A3            ?0021:
   \   00A3            ?0022:
    109                      }
    110                  case AP_MSG_WAIT_TIMEOUT:
    111                  case AP_KEY_PLAY://当按下PLAY键时先不处理,可减少停止时的杂音
    112                  case AP_KEY_NEXT://当按下NEXT键时先不处理,可减少选下一首时的杂音
    113                  case AP_KEY_PREV://当按下PREV键时先不处理,可减少选上一首时的杂音
    114          
    115                      key = ap_handle_hotkey(key);
   \   00A3  DD5EF6            LD      E,(IX-10)
   \   00A6  CD0000            CALL    LWRD ap_handle_hotkey
   \   00A9  DD77F6            LD      (IX-10),A
    116                      if (key == RESULT_REDRAW)
   \   00AC  FE32              CP      50
   \   00AE  2015              JR      NZ,?0024
   \   00B0            ?0023:
    117                      {
    118                          SetFullInterface();
   \   00B0  AF                XOR     A
   \   00B1  320000            LD      (ui_auto_update),A
   \   00B4  210000            LD      HL,UpDisplayFlag
   \   00B7  7E                LD      A,(HL)
   \   00B8  F6C1              OR      193
   \   00BA  77                LD      (HL),A
   \   00BB  23                INC     HL
   \   00BC  36FF              LD      (HL),255
    119                          need_draw = TRUE;
   \   00BE  3E01              LD      A,1
   \   00C0  320000            LD      (need_draw),A
   \   00C3  1826              JR      ?0014
   \   00C5            ?0024:
    120                      }
    121                      else if (key != 0)
   \   00C5  AF                XOR     A
   \   00C6  DDB6F6            OR      (IX-10)
   \   00C9  2820              JR      Z,?0014
   \   00CB            ?0026:
    122                      {
    123                          return key;
   \   00CB  1818              JR      ?0033
    124                      }
   \   00CD            ?0027:
   \   00CD            ?0025:
    125                      break;
   \   00CD            ?0028:
    126          
    127                  case AP_KEY_NULL://没按键
    128                      break;
   \   00CD            ?0029:
    129          
    130                  default:
    131                      //调用其他按键处理,只有对应的键按了后才进入(此函数在别的BANK)
    132                      key = DealKeyForPlayStatus(key);
   \   00CD  3E00              LD      A,BYTE3 DealKeyForPlayStatus
   \   00CF  210000            LD      HL,LWRD DealKeyForPlayStatus
   \   00D2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    133                      if (key != NULL)
   \   00D5  2C                INC     L
   \   00D6  2D                DEC     L
   \   00D7  2812              JR      Z,?0014
   \   00D9            ?0030:
    134                      {
    135                          if (key == RESULT_UI_STOP || key == RESULT_LIST)       //test
   \   00D9  7D                LD      A,L
   \   00DA  FE66              CP      102
   \   00DC  2804              JR      Z,?0034
   \   00DE  FE69              CP      105
   \   00E0  2003              JR      NZ,?0033
   \   00E2            ?0034:
   \   00E2            ?0035:
   \   00E2            ?0032:
    136                          {
    137                              return NULL;
   \   00E2  C39D01            JP      LWRD ?0162
    138                          }
   \   00E5            ?0033:
    139                          else
    140                          {
    141                              return key;
   \   00E5  6F                LD      L,A
   \   00E6  2600              LD      H,0
    142                          }
   \   00E8  C3A001            JP      LWRD ?0064
   \   00EB            ?0031:
    143                      }
    144                      break;
   \   00EB            ?0014:
    145                  }
    146          
    147                  musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
   \   00EB  210200            LD      HL,2
   \   00EE  39                ADD     HL,SP
   \   00EF  CDB001            CALL    LWRD ?0186
    148          
    149                  DealForABGap(& status_buf);
   \   00F2  210200            LD      HL,2
   \   00F5  39                ADD     HL,SP
   \   00F6  EB                EX      DE,HL
   \   00F7  3E00              LD      A,BYTE3 DealForABGap
   \   00F9  215905            LD      HL,LWRD DealForABGap
   \   00FC  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    150          
    151                  if (status_buf.status == PLAYING_ERROR)
   \   00FF  DD7EF8            LD      A,(IX-8)
   \   0102  FE0C              CP      12
   \   0104  200B              JR      NZ,?0037
   \   0106            ?0036:
    152                  {
    153                      Deal_Error_Playing();
   \   0106  3E00              LD      A,BYTE3 Deal_Error_Playing
   \   0108  210000            LD      HL,LWRD Deal_Error_Playing
   \   010B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    154                      return NULL;
   \   010E  C39D01            JP      LWRD ?0162
    155                  }
   \   0111            ?0037:
    156          
    157          
    158                  if (status_buf.status == PLAYING_REACH_END)
   \   0111  FE06              CP      6
   \   0113  2012              JR      NZ,?0041
   \   0115            ?0038:
    159                  {
    160                      MusicEditSelStatus=MusicEditSelSta_NoSel;
   \   0115  AF                XOR     A
   \   0116  320000            LD      (MusicEditSelStatus),A
    161                      MusicEditStatus=MusicEditSta_NoFun;
   \   0119  320000            LD      (MusicEditStatus),A
    162                      g_result = DealMusicFileEnd(0);
   \   011C  5F                LD      E,A
   \   011D  CDA801            CALL    LWRD ?0184
   \   0120  220000            LD      (g_result),HL
    163                      if ( g_result != NULL )
   \   0123  7D                LD      A,L
   \   0124  B4                OR      H
   \   0125  202B              JR      NZ,?0165
   \   0127            ?0040:
    164                      {
    165                          return g_result;
    166                      }
   \   0127            ?0041:
   \   0127            ?0039:
    167                  }
    168          
    169                  //注,下面是为解决一种特殊情况而做出的特殊处理,在一般情况下可不分到头,到尾
    170                  //     标志,统一用 PLAYING_REACH_END 标志就可以了,因为可通过 PlayStatus
    171                  //     这个标志判断是快进还是快退,就可知道是到了文件头还是文件尾,但如果在
    172                  //     快退到差不多到头时停止快退,这时已发停止命令,但由于模块层在接收这个
    173                  //     命令后到真正停止快退要有一个时间差,如在这个时间差中到文件头,如还是
    174                  //     用 PLAYING_REACH_END 标志那就分不清是到头还是到尾,所以要加一个标志
    175                  //     PLAYING_REACH_HEAD 表示是到头。
    176                  if (status_buf.status == PLAYING_REACH_HEAD)
   \   0127  DD7EF8            LD      A,(IX-8)
   \   012A  FE0E              CP      14
   \   012C  2026              JR      NZ,?0048
   \   012E            ?0042:
    177                  {
    178                      if (PlayStatus == PlaySta)
   \   012E  3A0000            LD      A,(PlayStatus)
   \   0131  3D                DEC     A
   \   0132  3D                DEC     A
   \   0133  2013              JR      NZ,?0045
   \   0135            ?0044:
    179                      {
    180                          DisInFBHead( 0 );//到头显示
   \   0135  5F                LD      E,A
   \   0136  3E00              LD      A,BYTE3 DisInFBHead
   \   0138  210000            LD      HL,LWRD DisInFBHead
   \   013B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    181                          SelectCurMusic();
   \   013E  3E00              LD      A,BYTE3 SelectCurMusic
   \   0140  210000            LD      HL,LWRD SelectCurMusic
   \   0143  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    182                      }
    183                      else
   \   0146  180C              JR      ?0048
   \   0148            ?0045:
    184                      {
    185                          g_result = DealMusicFileEnd(0);
   \   0148  CDA601            CALL    LWRD ?0185
   \   014B  220000            LD      (g_result),HL
    186                          if ( g_result != NULL )
   \   014E  7D                LD      A,L
   \   014F  B4                OR      H
   \   0150  2802              JR      Z,?0048
   \   0152            ?0047:
    187                          {
    188                              return g_result;
   \   0152            ?0165:
    189                          }
   \   0152  184C              JR      ?0064
   \   0154            ?0048:
   \   0154            ?0046:
   \   0154            ?0043:
    190                      }
    191                  }
    192          
    193                  if (RePlayStatus == WaitSetBPointForAB)
   \   0154  3A0000            LD      A,(RePlayStatus)
   \   0157  3D                DEC     A
   \   0158  3D                DEC     A
   \   0159  2022              JR      NZ,?0058
   \   015B            ?0049:
    194                  {
    195                      if (g_comval.ReplayMode)
   \   015B  3A0D00            LD      A,(g_comval+13)
   \   015E  B7                OR      A
   \   015F  281C              JR      Z,?0058
   \   0161            ?0051:
    196                      {
    197                          if ( (status_buf.signal == SIGNAL_REACH_V)
    198                              && (g_ABMinTimeCNT == 0) )//要大于AB最小时间
   \   0161  DD46F9            LD      B,(IX-7)
   \   0164  05                DEC     B
   \   0165  2016              JR      NZ,?0058
   \   0167  3A0000            LD      A,(g_ABMinTimeCNT)
   \   016A  B7                OR      A
   \   016B  2010              JR      NZ,?0058
   \   016D            ?0056:
   \   016D            ?0055:
   \   016D            ?0053:
    199                          {
    200                              if ( musicpSendCommand(MC_SETA_B, SetBPoint) ) //set_v
   \   016D  0E02              LD      C,2
   \   016F  1E41              LD      E,65
   \   0171  CDB401            CALL    LWRD ?0187
   \   0174  2C                INC     L
   \   0175  2D                DEC     L
   \   0176  2805              JR      Z,?0058
   \   0178            ?0057:
    201                              {
    202                                  g_AVSetFlag = TRUE;//标志是用AV的方式设置B点的
   \   0178  3E01              LD      A,1
   \   017A  320000            LD      (g_AVSetFlag),A
   \   017D            ?0058:
   \   017D            ?0054:
   \   017D            ?0052:
   \   017D            ?0050:
    203                              }
    204                          }
    205                      }
    206                  }
    207          
    208                  if(return_to_play==0)
   \   017D  3A0000            LD      A,(return_to_play)
   \   0180  B7                OR      A
   \   0181  200D              JR      NZ,?0060
   \   0183            ?0059:
    209                     g_result = RealDisplay();
   \   0183  3E00              LD      A,BYTE3 RealDisplay
   \   0185  21BC01            LD      HL,LWRD RealDisplay

⌨️ 快捷键说明

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