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

📄 ui_stop.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       27/Sep/107  17:35:42 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_reader\ui_stop.c              #
#       List file     =  d:\case_i_d913f\ap\ap_reader\list\ui_stop.lst       #
#       Object file   =  d:\case_i_d913f\ap\ap_reader\obj\ui_stop.r01        #
#       ASM file      =  d:\case_i_d913f\ap\ap_reader\list\ui_stop.s01       #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_reader\Obj\ -e -K   #
#                        -w -gA -s9 -RCODE -r0 -DNAPDEBUG -DAMV_JPG_TXT      #
#                        -LD:\case_i_d913f\ap\ap_reader\List\ -q -t8         #
#                        -AD:\case_i_d913f\ap\ap_reader\List\                #
#                        -ND:\case_i_d913f\ap\ap_reader\List\ -X             #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\AP_READER\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  MenuInReader
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   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  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_from_browser
   \   0000                    EXTERN  g_menu_active
   \   0000                    EXTERN  g_reader_vars
   \   0000                    PUBLIC  make_dirname
   \   0000                    PUBLIC  menu_pos
   \   0000                    PUBLIC  need_sel_file
   \   0000                    EXTERN  read_idm_data_reader
   \   0000                    EXTERN  reinit_idm_buf_reader
   \   0000                    EXTERN  reset_cur_list_bg_color_reader
   \   0000                    PUBLIC  sel_next
   \   0000                    PUBLIC  sel_prev
   \   0000                    EXTERN  show_active_list_reader
   \   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:52:52 tangwh Exp $
     10          *******************************************************************************
     11          */
     12          #include "actos.h"
     13          #include  "enhanced.h"
     14          #include "ap_common.h"
     15          #include  "display.h"
     16          #include "ap_reader.h"
     17          extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
     18          int active;        //当前文件序号
     19          int g_file_total;    //总文件数
     20          bool need_sel_file; 
     21          char  fileName[50];            //用作存放一些局部变量的buffer,避免过多的局部变量造成堆栈溢出
     22          const char menu_pos[6] = {22,22+18,22+18*2,22+18*3,22+18*4,22+18*5};
     23          
     24          #pragma codeseg(CODE_1)
     25          /*
     26          ********************************************************************************
     27          *
     28          ********************************************************************************
     29          */
     30          void make_dirname(void)
     31          {
   \   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
     32              int result;
     33          
     34             char Backbuf[32];
     35             fselGetLocation(&g_reader_vars.location);
   \   0009  CD8900            CALL    LWRD ?0116
     36              if(g_reader_vars.location.path[0]==':')
   \   000C  3A1400            LD      A,(g_reader_vars+20)
   \   000F  FE3A              CP      58
   \   0011  200B              JR      NZ,?0003
   \   0013            ?0002:
     37                  {
     38                      strcpy(dir_name,"ROOT");
   \   0013  110000            LD      DE,?0004
   \   0016  210000            LD      HL,dir_name
   \   0019  CD0000            CALL    LWRD ?STRCPY_L11
     39                  }
     40              else
   \   001C  185F              JR      ?0005
   \   001E            ?0003:
     41                  {
     42          
     43                  FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   001E  210000            LD      HL,0
   \   0021  E5                PUSH    HL
   \   0022  0E02              LD      C,2
   \   0024  23                INC     HL
   \   0025  23                INC     HL
   \   0026  39                ADD     HL,SP
   \   0027  EB                EX      DE,HL
   \   0028  CD0000            CALL    LWRD FS_Backup
   \   002B  E1                POP     HL
     44                  FS_CD("\\");
   \   002C  110500            LD      DE,?0006
   \   002F  CD0000            CALL    LWRD FS_CD
     45                  memcpy(dir_name, g_reader_vars.location.path, 12);
   \   0032  010C00            LD      BC,12
   \   0035  110000            LD      DE,dir_name
   \   0038  211400            LD      HL,g_reader_vars+20
   \   003B  EDB0              LDIR
     46                      result = FS_GetName(dir_name, 14); //取出长名
   \   003D  0E0E              LD      C,14
   \   003F  110000            LD      DE,dir_name
   \   0042  CD0000            CALL    LWRD FS_GetName
   \   0045  0600              LD      B,0
     47                      if (result != 0)
   \   0047  B7                OR      A
   \   0048  2815              JR      Z,?0008
   \   004A            ?0007:
     48                      {
     49                          unitochar(dir_name, sizeof(dir_name), g_comval.langid);
   \   004A  210C00            LD      HL,g_comval+12
   \   004D  4E                LD      C,(HL)
   \   004E  C5                PUSH    BC
   \   004F  0E1E              LD      C,30
   \   0051  110000            LD      DE,dir_name
   \   0054  3E00              LD      A,BYTE3 unitochar
   \   0056  210000            LD      HL,LWRD unitochar
   \   0059  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   005C  F1                POP     AF
     50                      }
     51                      else
   \   005D  1810              JR      ?0009
   \   005F            ?0008:
     52                      {
     53                          memcpy(dir_name, g_reader_vars.location.path, 12);
   \   005F  0E0C              LD      C,12
   \   0061  110000            LD      DE,dir_name
   \   0064  211400            LD      HL,g_reader_vars+20
   \   0067  EDB0              LDIR
     54                          dir_name[8]=0;
   \   0069  320800            LD      (dir_name+8),A
     55                          dir_name[9]=0;
   \   006C  320900            LD      (dir_name+9),A
   \   006F            ?0009:
     56          
     57                       }
     58                  FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   006F  210000            LD      HL,0
   \   0072  E5                PUSH    HL
   \   0073  0E02              LD      C,2
   \   0075  23                INC     HL
   \   0076  23                INC     HL
   \   0077  39                ADD     HL,SP
   \   0078  EB                EX      DE,HL
   \   0079  CD0000            CALL    LWRD FS_Restore
   \   007C  E1                POP     HL
   \   007D            ?0005:
     59          
     60                  }
     61          }
   \   007D  212000            LD      HL,32
   \   0080  39                ADD     HL,SP
   \   0081  F9                LD      SP,HL
   \   0082  DDE1              POP     IX
   \   0084  D1                POP     DE
   \   0085  C1                POP     BC
   \   0086  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0089            ?0116:
   \   0089  110600            LD      DE,g_reader_vars+6
   \   008C  3E00              LD      A,BYTE3 fselGetLocation
   \   008E  210000            LD      HL,LWRD fselGetLocation
   \   0091  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0094            sel_next:
     62          
     63          
     64          
     65          BOOL sel_next(BOOL select_all)
     66          {
   \   0094  C5                PUSH    BC
   \   0095  D5                PUSH    DE
   \   0096  F5                PUSH    AF
     67                  BOOL mc_result;
     68          
     69                  mc_result = FSELSetMode(FSEL_DIR_REPEATALL);
   \   0097  1E03              LD      E,3
   \   0099  3E00              LD      A,BYTE3 fselSetMode
   \   009B  210000            LD      HL,LWRD fselSetMode
   \   009E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     70          
     71                  mc_result = fselGetNext(g_reader_vars.location.filename);
   \   00A1  112000            LD      DE,g_reader_vars+32
   \   00A4  3E00              LD      A,BYTE3 fselGetNext
   \   00A6  210000            LD      HL,LWRD fselGetNext
   \   00A9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00AC  45                LD      B,L
     72                  if(!mc_result)
   \   00AD  AF                XOR     A
   \   00AE  B0                OR      B
   \   00AF  200D              JR      NZ,?0011
   \   00B1            ?0010:
     73                  {
     74                      if(fselGetErrID() == FSEL_ERR_OUTOF) {return FALSE;}
   \   00B1  3E00              LD      A,BYTE3 fselGetErrID
   \   00B3  210000            LD      HL,LWRD fselGetErrID
   \   00B6  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00B9  2D                DEC     L
   \   00BA  2014              JR      NZ,?0014
   \   00BC            ?0012:
   \   00BC  1812              JR      ?0014
   \   00BE            ?0013:
     75                  }
     76                  else    //normal next file
   \   00BE            ?0011:
     77                  {
     78                      mc_result = fselGetLocation(&g_reader_vars.location);
   \   00BE  CD8900            CALL    LWRD ?0116
     79                      fselSetLocation(&g_reader_vars.location);
   \   00C1  110600            LD      DE,g_reader_vars+6
   \   00C4  3E00              LD      A,BYTE3 fselSetLocation
   \   00C6  210000            LD      HL,LWRD fselSetLocation
   \   00C9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     80                      return TRUE;
   \   00CC  2E01              LD      L,1
     81                  }
   \   00CE  1801              JR      ?0015
   \   00D0            ?0014:
     82          
     83                  return FALSE;
   \   00D0  68                LD      L,B
     84          }
   \   00D1            ?0015:
   \   00D1  F1                POP     AF
   \   00D2  F1                POP     AF
   \   00D3  C1                POP     BC
   \   00D4  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00D7            sel_prev:
     85          

⌨️ 快捷键说明

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