ui_stop.lst

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

LST
1,232
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  16:59:35 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\ap_dsc2x_dec\ui_stop.c            #
#       List file     =  d:\case_i_d90f\ap\ap_dsc2x_dec\list\ui_stop.lst     #
#       Object file   =  d:\case_i_d90f\ap\ap_dsc2x_dec\obj\ui_stop.r01      #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\Ap_DSC2X_DEC\Obj\ -e    #
#                        -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT   #
#                        -LD:\case_i_d90f\ap\Ap_DSC2X_DEC\List\ -q -t8       #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\ap\ap_dsc2x_dec\ui_stop.c            #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_stop(17)
   \   0000                    RSEG    CODE_1(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    EXTERN  FS_Backup
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  FS_Restore
   \   0000                    EXTERN  MenuInPic
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  SetTextOutMode
   \   0000                    EXTERN  SetTextPos
   \   0000                    EXTERN  UpdateFileSelector
   \   0000                    PUBLIC  active
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  dir_name
   \   0000                    EXTERN  do_play
   \   0000                    PUBLIC  fileName
   \   0000                    EXTERN  file_name
   \   0000                    EXTERN  fselGetByNO
   \   0000                    EXTERN  fselGetErrID
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselGetNext
   \   0000                    EXTERN  fselGetNo
   \   0000                    EXTERN  fselGetPrev
   \   0000                    EXTERN  fselGetTotal
   \   0000                    EXTERN  fselInit
   \   0000                    EXTERN  fselSetLocation
   \   0000                    EXTERN  fselSetMode
   \   0000                    EXTERN  g_comval
   \   0000                    PUBLIC  g_file_total
   \   0000                    EXTERN  g_menu_active
   \   0000                    EXTERN  g_viewpic_vars
   \   0000                    PUBLIC  make_dirname
   \   0000                    PUBLIC  menu_pos
   \   0000                    PUBLIC  need_sel_file
   \   0000                    EXTERN  read_idm_data_pic
   \   0000                    EXTERN  reinit_idm_buf_pic
   \   0000                    PUBLIC  reset_cur_list_bg_color_pic
   \   0000                    PUBLIC  sel_next
   \   0000                    PUBLIC  sel_prev
   \   0000                    EXTERN  show_active_list_pic
   \   0000                    PUBLIC  show_stop
   \   0000                    EXTERN  ui_err_msg
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?S_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    RSEG    CODE_1
   \   0000            make_dirname:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        voice player stop program.
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: ui_stop.c,v 1.2 2006/07/14 06:44:15 tangwh Exp $
     10          *******************************************************************************
     11          */
     12          #include "actos.h"
     13          #include  "enhanced.h"
     14          #include "ap_common.h"
     15          #include  "display.h"
     16          #include "DSCDec.h"
     17          #include "ap_picdec.h"
     18          
     19          //#define DEBUG
     20          extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
     21          int active;        //当前文件序号
     22          int g_file_total;    //总文件数     
     23          bool  need_sel_file; 
     24          char  fileName[50]; 
     25          const char menu_pos[6] = {POSITION_MENU6,
     26                  POSITION_MENU5,POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1};    //zxs add
     27          
     28          #pragma codeseg(CODE_1)
     29          /*
     30          ********************************************************************************
     31          *
     32          ********************************************************************************
     33          */
     34          void make_dirname(void)
     35          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  DDE5              PUSH    IX
   \   0004  21E0FF            LD      HL,65504
   \   0007  39                ADD     HL,SP
   \   0008  F9                LD      SP,HL
     36              int result;
     37              char Backbuf[32];
     38             // fselGetLocation(&g_viewpic_vars.location);
     39              if(g_viewpic_vars.location.path[0]==':')
   \   0009  3A1200            LD      A,(g_viewpic_vars+18)
   \   000C  FE3A              CP      58
   \   000E  200B              JR      NZ,?0003
   \   0010            ?0002:
     40                  {
     41                      strcpy(dir_name,"ROOT");
   \   0010  110000            LD      DE,?0004
   \   0013  210000            LD      HL,dir_name
   \   0016  CD0000            CALL    LWRD ?STRCPY_L11
     42                  }
     43              else
   \   0019  185F              JR      ?0005
   \   001B            ?0003:
     44                  {
     45          
     46                  FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   001B  210000            LD      HL,0
   \   001E  E5                PUSH    HL
   \   001F  0E02              LD      C,2
   \   0021  23                INC     HL
   \   0022  23                INC     HL
   \   0023  39                ADD     HL,SP
   \   0024  EB                EX      DE,HL
   \   0025  CD0000            CALL    LWRD FS_Backup
   \   0028  E1                POP     HL
     47                          FS_CD("\\");
   \   0029  110500            LD      DE,?0006
   \   002C  CD0000            CALL    LWRD FS_CD
     48                  memcpy(dir_name, g_viewpic_vars.location.path, 12);
   \   002F  010C00            LD      BC,12
   \   0032  110000            LD      DE,dir_name
   \   0035  211200            LD      HL,g_viewpic_vars+18
   \   0038  EDB0              LDIR
     49                      result = FS_GetName(dir_name, 14); //取出长名
   \   003A  0E0E              LD      C,14
   \   003C  110000            LD      DE,dir_name
   \   003F  CD0000            CALL    LWRD FS_GetName
   \   0042  0600              LD      B,0
     50                      if (result != 0)
   \   0044  B7                OR      A
   \   0045  2815              JR      Z,?0008
   \   0047            ?0007:
     51                      {
     52                          unitochar(dir_name, sizeof(dir_name), g_comval.langid);
   \   0047  210C00            LD      HL,g_comval+12
   \   004A  4E                LD      C,(HL)
   \   004B  C5                PUSH    BC
   \   004C  0E1E              LD      C,30
   \   004E  110000            LD      DE,dir_name
   \   0051  3E00              LD      A,BYTE3 unitochar
   \   0053  210000            LD      HL,LWRD unitochar
   \   0056  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0059  F1                POP     AF
     53                      }
     54                      else
   \   005A  1810              JR      ?0009
   \   005C            ?0008:
     55                      {
     56                          memcpy(dir_name, g_viewpic_vars.location.path, 12);
   \   005C  0E0C              LD      C,12
   \   005E  110000            LD      DE,dir_name
   \   0061  211200            LD      HL,g_viewpic_vars+18
   \   0064  EDB0              LDIR
     57                          dir_name[8]=0;
   \   0066  320800            LD      (dir_name+8),A
     58                          dir_name[9]=0;
   \   0069  320900            LD      (dir_name+9),A
   \   006C            ?0009:
     59                      }
     60                  FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   006C  210000            LD      HL,0
   \   006F  E5                PUSH    HL
   \   0070  0E02              LD      C,2
   \   0072  23                INC     HL
   \   0073  23                INC     HL
   \   0074  39                ADD     HL,SP
   \   0075  EB                EX      DE,HL
   \   0076  CD0000            CALL    LWRD FS_Restore
   \   0079  E1                POP     HL
   \   007A            ?0005:
     61          
     62                  }
     63          }
   \   007A  212000            LD      HL,32
   \   007D  39                ADD     HL,SP
   \   007E  F9                LD      SP,HL
   \   007F  DDE1              POP     IX
   \   0081  D1                POP     DE
   \   0082  C1                POP     BC
   \   0083  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0086            sel_next:
     64          
     65          
     66          
     67          BOOL sel_next(BOOL select_all)
     68          {
   \   0086  C5                PUSH    BC
   \   0087  D5                PUSH    DE
   \   0088  F5                PUSH    AF
     69                  BOOL mc_result;
     70          
     71              mc_result = FSELSetMode(FSEL_DIR_REPEATALL);
   \   0089  1E03              LD      E,3
   \   008B  3E00              LD      A,BYTE3 fselSetMode
   \   008D  210000            LD      HL,LWRD fselSetMode
   \   0090  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     72          
     73                  mc_result = fselGetNext(g_viewpic_vars.location.filename);
   \   0093  111E00            LD      DE,g_viewpic_vars+30
   \   0096  3E00              LD      A,BYTE3 fselGetNext
   \   0098  210000            LD      HL,LWRD fselGetNext
   \   009B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   009E  45                LD      B,L
     74                  if(!mc_result)
   \   009F  AF                XOR     A
   \   00A0  B0                OR      B
   \   00A1  200D              JR      NZ,?0011
   \   00A3            ?0010:
     75                  {
     76                      if(fselGetErrID() == FSEL_ERR_OUTOF) {return FALSE;}
   \   00A3  3E00              LD      A,BYTE3 fselGetErrID
   \   00A5  210000            LD      HL,LWRD fselGetErrID
   \   00A8  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00AB  2D                DEC     L
   \   00AC  2009              JR      NZ,?0014
   \   00AE            ?0012:
   \   00AE  1807              JR      ?0014
   \   00B0            ?0013:
     77                  }
     78                  else    //normal next file
   \   00B0            ?0011:
     79                  {
     80                      mc_result = fselGetLocation(&g_viewpic_vars.location);
   \   00B0  CDBE00            CALL    LWRD ?0118
     81                      return TRUE;
   \   00B3  2E01              LD      L,1
     82                  }
   \   00B5  1801              JR      ?0015
   \   00B7            ?0014:
     83          
     84                  return FALSE;
   \   00B7  68                LD      L,B
     85          }
   \   00B8            ?0015:
   \   00B8  F1                POP     AF
   \   00B9  F1                POP     AF
   \   00BA  C1                POP     BC
   \   00BB  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00BE            ?0118:
   \   00BE  110400            LD      DE,g_viewpic_vars+4
   \   00C1  3E00              LD      A,BYTE3 fselGetLocation
   \   00C3  210000            LD      HL,LWRD fselGetLocation
   \   00C6  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   00C9            sel_prev:
     86          
     87          BOOL sel_prev(BOOL select_all)
     88          {
   \   00C9  C5                PUSH    BC
   \   00CA  D5                PUSH    DE
   \   00CB  F5                PUSH    AF
     89                  BOOL mc_result;
     90              mc_result = FSELSetMode(FSEL_DIR_REPEATALL);;
   \   00CC  1E03              LD      E,3
   \   00CE  3E00              LD      A,BYTE3 fselSetMode
   \   00D0  210000            LD      HL,LWRD fselSetMode
   \   00D3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     91          
     92              mc_result = fselGetPrev(g_viewpic_vars.location.filename);
   \   00D6  111E00            LD      DE,g_viewpic_vars+30
   \   00D9  3E00              LD      A,BYTE3 fselGetPrev
   \   00DB  210000            LD      HL,LWRD fselGetPrev
   \   00DE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00E1  45                LD      B,L
     93              if(!mc_result)
   \   00E2  AF                XOR     A
   \   00E3  B0                OR      B
   \   00E4  200D              JR      NZ,?0017
   \   00E6            ?0016:
     94              {
     95                  if(fselGetErrID() == FSEL_ERR_OUTOF) {return FALSE;}//normal end
   \   00E6  3E00              LD      A,BYTE3 fselGetErrID
   \   00E8  210000            LD      HL,LWRD fselGetErrID
   \   00EB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08

⌨️ 快捷键说明

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