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

📄 ui_stop_menu.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:39:14 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_voice\ui_stop_menu.c          #
#       List file     =  d:\case_i_d913f\ap\ap_voice\list\ui_stop_menu.lst   #
#       Object file   =  d:\case_i_d913f\ap\ap_voice\obj\ui_stop_menu.r01    #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_voice\Obj\ -e -K    #
#                        -w -gA -s9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_voice\List\ -q -t8          #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\AP_VOICE\ui_stop_menu.c          #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_stop_menu(17)
   \   0000                    RSEG    CODE(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  DRV_DetectUD
   \   0000                    EXTERN  DisablePA
   \   0000                    EXTERN  EnablePA
   \   0000                    PUBLIC  dir_string
   \   0000                    PUBLIC  dir_string_card
   \   0000                    PUBLIC  do_play
   \   0000                    EXTERN  fade_in
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselInit
   \   0000                    EXTERN  fselSetMode
   \   0000                    EXTERN  g_DiskStateFlag
   \   0000                    EXTERN  g_card_in_using
   \   0000                    EXTERN  g_card_ok
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_menu_active
   \   0000                    EXTERN  g_voice_vars
   \   0000                    EXTERN  list
   \   0000                    EXTERN  need_restore
   \   0000                    PUBLIC  need_sel_file
   \   0000                    EXTERN  show_play
   \   0000                    PUBLIC  show_stop_menu
   \   0000                    EXTERN  ui_delete
   \   0000                    EXTERN  ui_delete_all
   \   0000                    EXTERN  ui_directory
   \   0000                    EXTERN  ui_err_msg
   \   0000                    EXTERN  ui_popup_list
   \   0000                    EXTERN  voiceSendCommand
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_S_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    CODE
   \   0000            do_play:
      1          
      2          /*
      3          *******************************************************************************
      4          *                ACTOS AP
      5          *        voice player stop program.
      6          *
      7          *        (c) Copyright, Actions Co,Ld.
      8          *             All Right Reserved
      9          *
     10          *  $Id: ui_stop_menu.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     11          *******************************************************************************
     12          */
     13          #include "actos.h"
     14          #include "basal.h"
     15          #include "enhanced.h"
     16          #include "ap_common.h"
     17          #include "ap_voice.h"
     18          
     19          //全局常量
     20          
     21          const WORD dir_string[]={VSTOPM1,/*VSTOPM2,*/VSTOPM3,VSTOPM4,VSTOPM5};
     22          
     23          
     24          const WORD dir_string_card[]={VSTOPM1,VSTOPM2,VSTOPM3,VSTOPM4,VSTOPM5};
     25          
     26          BOOL need_sel_file;   
     27          extern BOOL need_restore; 
     28          extern BOOL g_menu_active;
     29          extern  BOOL g_card_in_using;    //储存卡是否在使用
     30          extern  BOOL g_card_ok;        //储存卡是否可用
     31          extern  BOOL g_card_in_using;    //储存卡是否在使用
     32          extern int do_play(BOOL need_restore);
     33          extern void make_dirname(void);
     34          extern  BOOL fade_in(BYTE to_volume);
     35          extern BYTE g_DiskStateFlag; 
     36          /*
     37          ********************************************************************************
     38          * Description : 执行播放的过程
     39          *
     40          * Arguments   : need_restore, 是否使用restore模式播放
     41                  全局变量
     42                  g_voice_vars.resore_pointer
     43                  g_voice_vars.location.filename
     44          *
     45          * Returns     : 结果消息和0
     46                  全局变量
     47                  g_voice_vars.restore_time
     48                  g_voice_vars.resore_pointer
     49                  g_voice_vars.location
     50          *
     51          * Notes       :
     52          *
     53          ********************************************************************************
     54          */
     55          int do_play(BOOL need_restore)
     56          {
   \   0000  C5                PUSH    BC
   \   0001  DDE5              PUSH    IX
   \   0003  D5                PUSH    DE
   \   0004  F5                PUSH    AF
   \   0005  F5                PUSH    AF
   \   0006  F5                PUSH    AF
   \   0007  F5                PUSH    AF
     57              BOOL mc_result;
     58              int result;
     59          
     60              //start codec         
     61          //                if(!pa_enabled)
     62                      {
     63                          //power on DAC/PA
     64                          pa_t pa;
     65          
     66                          pa.pa_in.dacin = 1;
   \   0008  210300            LD      HL,3
   \   000B  39                ADD     HL,SP
   \   000C  CBC6              SET     0,(HL)
     67                          pa.pa_in.fmin = 0;
   \   000E  CB8E              RES     1,(HL)
     68                          pa.pa_in.linein = 0;
   \   0010  CB96              RES     2,(HL)
     69                          pa.pa_in.micin = 0;
   \   0012  CB9E              RES     3,(HL)
     70                          pa.volume = g_voice_vars.volume;
   \   0014  3A0200            LD      A,(g_voice_vars+2)
   \   0017  23                INC     HL
   \   0018  77                LD      (HL),A
     71                          //pa.volume = 0;
     72                          EnablePA(&pa);
   \   0019  2B                DEC     HL
   \   001A  EB                EX      DE,HL
   \   001B  CD0000            CALL    LWRD EnablePA
     73          
     74          //                pa_enabled = TRUE;
     75                      } 
     76              mc_result = voiceSendCommand(MC_OPEN, 0);
   \   001E  010000            LD      BC,0
   \   0021  1E01              LD      E,1
   \   0023  CDA900            CALL    LWRD ?0073
     77          
     78              //set volume
     79              voiceSendCommand(MC_SETVOLUME, g_voice_vars.volume);
   \   0026  ED4B0200          LD      BC,(g_voice_vars+2)
   \   002A  0600              LD      B,0
   \   002C  1E40              LD      E,64
   \   002E  CDA900            CALL    LWRD ?0073
     80              voiceSendCommand(MC_SETSPEED, g_voice_vars.play_rate);
   \   0031  ED4B0500          LD      BC,(g_voice_vars+5)
   \   0035  79                LD      A,C
   \   0036  07                RLCA
   \   0037  9F                SBC     A,A
   \   0038  47                LD      B,A
   \   0039  1E46              LD      E,70
   \   003B  CDA900            CALL    LWRD ?0073
     81          
     82              //check if need restore
     83              if(need_restore)
   \   003E  210800            LD      HL,8
   \   0041  39                ADD     HL,SP
   \   0042  AF                XOR     A
   \   0043  B6                OR      (HL)
   \   0044  2808              JR      Z,?0003
   \   0046            ?0002:
     84              {
     85                  //debug
     86                  //if(g_voice_vars.resore_pointer == 0) DUMP("restore ptr:", 0);
     87          
     88                  voiceSendCommand(MC_RESTORE, (int)&g_voice_vars.resore_pointer);
   \   0046  013100            LD      BC,g_voice_vars+49
   \   0049  1E45              LD      E,69
   \   004B  CDA900            CALL    LWRD ?0073
   \   004E            ?0003:
     89              }
     90          
     91              fade_in(0);        // 淡入
   \   004E  1E00              LD      E,0
   \   0050  3E00              LD      A,BYTE3 fade_in
   \   0052  210000            LD      HL,LWRD fade_in
   \   0055  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     92              mc_result = voiceSendCommand(MC_LOAD, (int)g_voice_vars.location.filename);
   \   0058  012000            LD      BC,g_voice_vars+32
   \   005B  1E03              LD      E,3
   \   005D  CDA900            CALL    LWRD ?0073
     93              ASSERT(mc_result);
     94          
     95              //change to play ui
     96              result = show_play();
   \   0060  3E00              LD      A,BYTE3 show_play
   \   0062  210000            LD      HL,LWRD show_play
   \   0065  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0068  E5                PUSH    HL
   \   0069  DDE1              POP     IX
     97          
     98              //keep restore point
     99              voiceSendCommand(MC_GETTIME, (int)&g_voice_vars.restore_time);
   \   006B  013500            LD      BC,g_voice_vars+53
   \   006E  1E80              LD      E,128
   \   0070  CDA900            CALL    LWRD ?0073
    100          
    101              //stop codec
    102              voiceSendCommand(MC_STOP, 0);
   \   0073  010000            LD      BC,0
   \   0076  1E06              LD      E,6
   \   0078  CDA900            CALL    LWRD ?0073
    103              voiceSendCommand(MC_BACKUP, (int)&g_voice_vars.resore_pointer);
   \   007B  013100            LD      BC,g_voice_vars+49
   \   007E  1E44              LD      E,68
   \   0080  CDA900            CALL    LWRD ?0073
    104              voiceSendCommand(MC_CLOSE, 0);
   \   0083  010000            LD      BC,0
   \   0086  1E02              LD      E,2
   \   0088  CDA900            CALL    LWRD ?0073
    105              DisablePA();
   \   008B  CD0000            CALL    LWRD DisablePA
    106              // basal运行的过程中不能调用enhanced
    107              mc_result = fselGetLocation(&g_voice_vars.location);
   \   008E  110600            LD      DE,g_voice_vars+6
   \   0091  3E00              LD      A,BYTE3 fselGetLocation
   \   0093  210000            LD      HL,LWRD fselGetLocation
   \   0096  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    108              ASSERT(mc_result);
    109          
    110              return result;
   \   0099  DDE5              PUSH    IX
   \   009B  E1                POP     HL
    111          }  
   \   009C  EB                EX      DE,HL
   \   009D  210A00            LD      HL,10
   \   00A0  39                ADD     HL,SP
   \   00A1  F9                LD      SP,HL
   \   00A2  EB                EX      DE,HL
   \   00A3  DDE1              POP     IX
   \   00A5  C1                POP     BC
   \   00A6  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00A9            ?0073:
   \   00A9  3E00              LD      A,BYTE3 voiceSendCommand
   \   00AB  210000            LD      HL,LWRD voiceSendCommand
   \   00AE  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   00B1            show_stop_menu:
    112          
    113          /*
    114          ********************************************************************************
    115          * Description : 停止界面菜单
    116          *
    117          * Arguments   :
    118          *
    119          * Returns     : 结果消息或0
    120          *
    121          * Notes       : 改变目录 或者 删除文件 会有事件发生
    122          *
    123          ********************************************************************************
    124          */
    125          int show_stop_menu(void)
    126          {
   \   00B1  C5                PUSH    BC
   \   00B2  D5                PUSH    DE
   \   00B3  DDE5              PUSH    IX
    127              int result;
    128              static char active=0;    //保持选中菜单的序号
    129              int temp;
    130          
    131              result = DRV_DetectUD(1);  //检查是否有卡
   \   00B5  1E01              LD      E,1
   \   00B7  CD0000            CALL    LWRD DRV_DetectUD
   \   00BA  4F                LD      C,A
    132              if(result == 0x020)
   \   00BB  3E20              LD      A,32
   \   00BD  A9                XOR     C
   \   00BE  2005              JR      NZ,?0006
   \   00C0            ?0005:
    133                  g_card_ok = TRUE;
   \   00C0  3E01              LD      A,1

⌨️ 快捷键说明

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