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

📄 main.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
    404          ********************************************************************************
    405          */
    406          void speed_callback(int value)
    407          {
   \   046C  C5                PUSH    BC
   \   046D  D5                PUSH    DE
    408              //DUMP_NUM(value);
    409              g_voice_vars.play_rate = value;
   \   046E  7B                LD      A,E
   \   046F  322500            LD      (g_voice_vars+5),A
    410          
    411              voiceSendCommand(MC_SETSPEED, g_voice_vars.play_rate);
   \   0472  ED4B2500          LD      BC,(g_voice_vars+5)
   \   0476  79                LD      A,C
   \   0477  07                RLCA
   \   0478  9F                SBC     A,A
   \   0479  47                LD      B,A
   \   047A  1E46              LD      E,70
   \   047C  CD1104            CALL    LWRD ?0140
    412          }
   \   047F  E1                POP     HL
   \   0480  C1                POP     BC
   \   0481  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0484            show_speed:
    413          
    414          /*
    415          ********************************************************************************
    416          * Description : 播放速度设置界面
    417          *
    418          * Arguments   :
    419          *
    420          * Returns     :
    421          *
    422          * Notes       :
    423          *
    424          ********************************************************************************
    425          */
    426          int show_speed(void)
    427          {
   \   0484  C5                PUSH    BC
   \   0485  D5                PUSH    DE
   \   0486  DDE5              PUSH    IX
    428              int result;
    429          
    430              ClearScreen(NULL);
   \   0488  110000            LD      DE,0
   \   048B  CD0000            CALL    LWRD ClearScreen
    431          
    432              UpdateScreen(NULL);
   \   048E  110000            LD      DE,0
   \   0491  CD0000            CALL    LWRD UpdateScreen
    433              slider.title=VPLAYM2;
   \   0494  21B601            LD      HL,438
   \   0497  22CB00            LD      (slider),HL
    434              slider.value = g_voice_vars.play_rate;
   \   049A  ED4B2500          LD      BC,(g_voice_vars+5)
   \   049E  79                LD      A,C
   \   049F  07                RLCA
   \   04A0  9F                SBC     A,A
   \   04A1  47                LD      B,A
   \   04A2  ED43D100          LD      (slider+6),BC
    435              slider.max = +8;
   \   04A6  210800            LD      HL,8
   \   04A9  22CF00            LD      (slider+4),HL
    436              slider.min = -8;
   \   04AC  21F8FF            LD      HL,65528
   \   04AF  22CD00            LD      (slider+2),HL
    437              slider.step = 1;
   \   04B2  210100            LD      HL,1
   \   04B5  22D300            LD      (slider+8),HL
    438              slider.string_id=g_comval.langid;
   \   04B8  3A0C00            LD      A,(g_comval+12)
   \   04BB  32D500            LD      (slider+10),A
    439              ui_auto_update=FALSE;
   \   04BE  AF                XOR     A
   \   04BF  320000            LD      (ui_auto_update),A
    440              result = ui_slider(&slider, speed_callback);
   \   04C2  0E00              LD      C,BYTE3 speed_callback
   \   04C4  C5                PUSH    BC
   \   04C5  216C04            LD      HL,LWRD speed_callback
   \   04C8  E5                PUSH    HL
   \   04C9  11CB00            LD      DE,slider
   \   04CC  3E00              LD      A,BYTE3 ui_slider
   \   04CE  210000            LD      HL,LWRD ui_slider
   \   04D1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04D4  F1                POP     AF
   \   04D5  F1                POP     AF
    441              ui_auto_update=TRUE;
   \   04D6  3E01              LD      A,1
   \   04D8  320000            LD      (ui_auto_update),A
    442              return result;
    443          }
   \   04DB  DDE1              POP     IX
   \   04DD  D1                POP     DE
   \   04DE  C1                POP     BC
   \   04DF  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   04E2            sel_next:
    444          
    445          /*
    446          ********************************************************************************
    447          * Description : 选择下一个文件
    448          *
    449          * Arguments   : select_all: TRUE,选择全部文件; FALSE, 按照当前的循环模式
    450          *
    451          * Returns     : 成功, TRUE
    452                  失败, FALSE
    453          *
    454          * Notes       :
    455          *
    456          ********************************************************************************
    457          */
    458          BOOL sel_next(BOOL select_all)
    459          {
   \   04E2  C5                PUSH    BC
   \   04E3  D5                PUSH    DE
   \   04E4  F5                PUSH    AF
    460              BOOL mc_result;
    461              handle f_handle;
    462          
    463                          if(Cur_Status==2)
   \   04E5  3A0000            LD      A,(Cur_Status)
   \   04E8  3D                DEC     A
   \   04E9  3D                DEC     A
   \   04EA  2003              JR      NZ,?0058
   \   04EC            ?0057:
    464                  Cur_Status=0;
   \   04EC  320000            LD      (Cur_Status),A
   \   04EF            ?0058:
    465          
    466              if(select_all)
   \   04EF  AF                XOR     A
   \   04F0  B3                OR      E
   \   04F1  2804              JR      Z,?0060
   \   04F3            ?0059:
    467              {
    468                FSELSetMode(FSEL_ALL_REPEATALL);
   \   04F3  1E04              LD      E,4
   \   04F5  1804              JR      ?0127
    469          
    470              }
    471              else
   \   04F7            ?0060:
    472              {
    473                  //maybe the mode changed in ui_play()
    474                  FSELSetMode(g_voice_vars.repeat_mode);
   \   04F7  ED5B2300          LD      DE,(g_voice_vars+3)
   \   04FB            ?0127:
   \   04FB  CDFD03            CALL    LWRD ?0139
   \   04FE            ?0061:
    475              }
    476          
    477              mc_result = fselGetNextFile(g_voice_vars.location.filename);
   \   04FE  E5                PUSH    HL
   \   04FF  C1                POP     BC
    478              output8(0x4e,input8(0x4e)|0x8);
   \   0500  DB4E              IN      A,(78)
   \   0502  CBDF              SET     3,A
   \   0504  D34E              OUT     (78),A
    479              if(!mc_result)
   \   0506  AF                XOR     A
   \   0507  B1                OR      C
   \   0508  2018              JR      NZ,?0063
   \   050A            ?0062:
    480              {
    481                  if(fselGetErrID() == FSEL_ERR_OUTOF)
   \   050A  3E00              LD      A,BYTE3 fselGetErrID
   \   050C  210000            LD      HL,LWRD fselGetErrID
   \   050F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0512  2D                DEC     L
   \   0513  201C              JR      NZ,?0066
   \   0515            ?0064:
    482                  {
    483                      fselSetLocation(&g_voice_vars.location);
   \   0515  112600            LD      DE,g_voice_vars+6
   \   0518  3E00              LD      A,BYTE3 fselSetLocation
   \   051A  210000            LD      HL,LWRD fselSetLocation
   \   051D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    484                      return FALSE;
   \   0520  180F              JR      ?0066
    485                  }
   \   0522            ?0065:
    486              }
    487              else    //normal next file
   \   0522            ?0063:
    488              {
    489                  fselGetLocation(&g_voice_vars.location);
   \   0522  CDF203            CALL    LWRD ?0138
    490                  make_dirname();
   \   0525  3E00              LD      A,BYTE3 make_dirname
   \   0527  210000            LD      HL,LWRD make_dirname
   \   052A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    491                  return TRUE;
   \   052D  2E01              LD      L,1
    492              }
   \   052F  1801              JR      ?0067
   \   0531            ?0066:
    493          
    494              return FALSE;
   \   0531  69                LD      L,C
    495          }
   \   0532            ?0067:
   \   0532  F1                POP     AF
   \   0533  F1                POP     AF
   \   0534  C1                POP     BC
   \   0535  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0538            sel_prev:
    496          
    497          /*
    498          ********************************************************************************
    499          * Description : 选择上一个文件
    500          *
    501          * Arguments   : select_all, TRUE,选择全部文件, FALSE, 按照当前的循环模式
    502          *
    503          * Returns     : 成功, TRUE
    504                  失败, FALSE
    505          *
    506          * Notes       :
    507          *
    508          ********************************************************************************
    509          */
    510          BOOL sel_prev(BOOL select_all)
    511          {
   \   0538  C5                PUSH    BC
   \   0539  D5                PUSH    DE
   \   053A  F5                PUSH    AF
    512              BOOL mc_result;
    513              handle f_handle;
    514          
    515                          if(Cur_Status==2)
   \   053B  3A0000            LD      A,(Cur_Status)
   \   053E  3D                DEC     A
   \   053F  3D                DEC     A
   \   0540  2003              JR      NZ,?0069
   \   0542            ?0068:
    516                  Cur_Status=0;
   \   0542  320000            LD      (Cur_Status),A
   \   0545            ?0069:
    517          
    518              if(select_all)
   \   0545  AF                XOR     A
   \   0546  B3                OR      E
   \   0547  2804              JR      Z,?0071
   \   0549            ?0070:
    519              {
    520                  FSELSetMode(FSEL_ALL_REPEATALL);
   \   0549  1E04              LD      E,4
   \   054B  1804              JR      ?0131
    521              }
    522              else
   \   054D            ?0071:
    523              {
    524                  //maybe the mode changed in ui_play()
    525                  FSELSetMode(g_voice_vars.repeat_mode);
   \   054D  ED5B2300          LD      DE,(g_voice_vars+3)
   \   0551            ?0131:
   \   0551  3E00              LD      A,BYTE3 fselSetMode
   \   0553  210000            LD      HL,LWRD fselSetMode
   \   0556  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0559            ?0072:
    526              }
    527          
    528              mc_result = fselGetPrevFile(g_voice_vars.location.filename);
   \   0559  114000            LD      DE,g_voice_vars+32
   \   055C  3E00              LD      A,BYTE3 fselGetPrevFile
   \   055E  210000            LD      HL,LWRD fselGetPrevFile
   \   0561  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0564  E5                PUSH    HL
   \   0565  C1                POP     BC
    529              output8(0x4e,input8(0x4e)|0x8);
   \   0566  DB4E              IN      A,(78)
   \   0568  CBDF              SET     3,A
   \   056A  D34E              OUT     (78),A
    530              if(!mc_result)
   \   056C  AF                XOR     A
   \   056D  B1                OR      C
   \   056E  2018              JR      NZ,?0074
   \   0570            ?0073:
    531              {
    5

⌨️ 快捷键说明

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