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

📄 show_stop.lst

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

   \   0000                    NAME    show_stop(17)
   \   0000                    RSEG    CODE(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  FS_Dir
   \   0000                    EXTERN  FS_GetSpace
   \   0000                    EXTERN  GenNewName
   \   0000                    EXTERN  GetBattery
   \   0000                    EXTERN  Open_RecRoute
   \   0000                    PUBLIC  Rec_format
   \   0000                    PUBLIC  Rec_resource
   \   0000                    EXTERN  TM_GetDate
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  ap_sleep
   \   0000                    PUBLIC  channelnum
   \   0000                    PUBLIC  currentBitrate
   \   0000                    EXTERN  do_rec
   \   0000                    EXTERN  fm_show_stop_menu
   \   0000                    PUBLIC  format_filename
   \   0000                    EXTERN  fselInit
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_file_build_time
   \   0000                    EXTERN  g_file_name_time
   \   0000                    EXTERN  g_file_num
   \   0000                    EXTERN  g_free_space
   \   0000                    PUBLIC  g_menu_active
   \   0000                    EXTERN  g_now_time
   \   0000                    EXTERN  g_rec_event
   \   0000                    EXTERN  g_rec_from
   \   0000                    EXTERN  g_rec_time
   \   0000                    EXTERN  g_record_vars
   \   0000                    PUBLIC  gen_filename
   \   0000                    EXTERN  itoa_1
   \   0000                    EXTERN  itoa_2
   \   0000                    EXTERN  itoa_3
   \   0000                    EXTERN  itoa_4
   \   0000                    EXTERN  main_ResShowPic
   \   0000                    EXTERN  make_dirname
   \   0000                    PUBLIC  parse_total_num
   \   0000                    PUBLIC  parse_total_time
   \   0000                    PUBLIC  rec_Fsrate
   \   0000                    PUBLIC  rec_FsrateCodec
   \   0000                    EXTERN  reset_record_dir
   \   0000                    EXTERN  show_error
   \   0000                    PUBLIC  show_stop
   \   0000                    EXTERN  show_stop_menu
   \   0000                    EXTERN  status
   \   0000                    EXTERN  time
   \   0000                    EXTERN  ui_draw
   \   0000                    EXTERN  ui_show_batt
   \   0000                    EXTERN  ui_show_d
   \   0000                    EXTERN  ui_show_msg
   \   0000                    PUBLIC  voice_ext
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?L_LSH_L03
   \   0000                    EXTERN  ?UL_DIV_L03
   \   0000                    EXTERN  ?UL_MOD_L03
   \   0000                    EXTERN  ?UL_DIVASG_L03
   \   0000                    EXTERN  ?UL_MODASG_L03
   \   0000                    EXTERN  ?L_ADDASG_L03
   \   0000                    EXTERN  ?UL_RSHASG_L03
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    EXTERN  ?STRCAT_L11
   \   0000                    RSEG    CODE
   \   0000            parse_total_time:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        voice recorder main program.
      5          *
      6          *        (c) Copyright, Actions Co,Ld.                             
      7          *             All Right Reserved                          
      8          *
      9          *  $Id: show_stop.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
     10          *******************************************************************************
     11          */
     12          #include "actos.h"
     13          #include "basal.h"
     14          #include "enhanced.h"          
     15          #include "ap_common.h"
     16          #include "ap_record.h"
     17          #include "codec.h"
     18          
     19          const char rec_Fsrate[4]={8,8,48,48};
     20          const char rec_FsrateCodec[4]={_FS_8K,_FS_8K/*,_FS_12K,_FS_16K,_FS_24K,_FS_32K*/,_FS_48K,_FS_48K};         
     21          const char voice_ext[][4] = {"WAV", "ACT"}; 
     22          char    currentBitrate[4];
     23          resource_t    Rec_resource={0};
     24          audio_format_t    Rec_format;
     25          channelnum_t channelnum;
     26          BOOL g_menu_active;
     27          
     28          extern int fm_show_stop_menu(void);
     29          extern int show_stop_menu(void); 
     30          extern BOOL reset_record_dir(void);
     31          extern void Open_RecRoute(byte rec_source);
     32          
     33          extern enum
     34              {
     35                  stop,
     36                  recording,
     37                  pause,
     38                  wait_to_save,
     39                  saving
     40              }status;
     41          /*
     42          ********************************************************************************
     43          * Description : 分析剩余空间,计算可录音时间
     44          *
     45          * Arguments   :
     46          *
     47          * Returns     : 全局变量
     48                  g_total_time[], 总录音时间字符串
     49                  g_free_space, 剩余空间,单位page
     50          *
     51          * Notes       :
     52          *
     53          ********************************************************************************
     54          */
     55          void parse_total_time(void)
     56          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
   \   0002  DDE5              PUSH    IX
   \   0004  DD210000          LD      IX,0
   \   0008  DD39              ADD     IX,SP
   \   000A  F5                PUSH    AF
   \   000B  F5                PUSH    AF
     57              //BOOL mc_result;
     58              ulong total_sec=0L;
     59             //  time_t time;
     60              
     61              //show total time
     62              g_free_space = (ulong)FS_GetSpace(FS_GET_SPACE_FREE);
   \   000C  1E01              LD      E,1
   \   000E  CD0000            CALL    LWRD FS_GetSpace
   \   0011  220000            LD      (g_free_space),HL
   \   0014  ED430200          LD      (g_free_space+2),BC
     63          
     64              if(g_free_space > SPACE_LOW) g_free_space -= SPACE_LOW;
   \   0018  AF                XOR     A
   \   0019  C5                PUSH    BC
   \   001A  E5                PUSH    HL
   \   001B  211400            LD      HL,20
   \   001E  C1                POP     BC
   \   001F  ED42              SBC     HL,BC
   \   0021  6F                LD      L,A
   \   0022  67                LD      H,A
   \   0023  C1                POP     BC
   \   0024  ED42              SBC     HL,BC
   \   0026  300E              JR      NC,?0003
   \   0028            ?0002:
   \   0028  210000            LD      HL,g_free_space
   \   002B  01FFFF            LD      BC,65535
   \   002E  11ECFF            LD      DE,65516
   \   0031  CD0000            CALL    LWRD ?L_ADDASG_L03
     65              else
   \   0034  180D              JR      ?0004
   \   0036            ?0003:
     66              {
     67                  g_free_space = 0;
   \   0036  4F                LD      C,A
   \   0037  47                LD      B,A
   \   0038  ED430000          LD      (g_free_space),BC
   \   003C  ED430200          LD      (g_free_space+2),BC
     68                  return;
     69              }
   \   0040  C3E700            JP      LWRD ?0009
   \   0043            ?0004:
     70              
     71              //wav: 128 ms/page
     72              total_sec = (g_free_space - 1) * 1024/rec_Fsrate[g_record_vars.rec_bitrate];
   \   0043  ED4B0300          LD      BC,(g_record_vars+3)
   \   0047  47                LD      B,A
   \   0048  210000            LD      HL,rec_Fsrate
   \   004B  09                ADD     HL,BC
   \   004C  6E                LD      L,(HL)
   \   004D  48                LD      C,B
   \   004E  61                LD      H,C
   \   004F  C5                PUSH    BC
   \   0050  E5                PUSH    HL
   \   0051  21FFFF            LD      HL,65535
   \   0054  E5                PUSH    HL
   \   0055  E5                PUSH    HL
   \   0056  2A0000            LD      HL,(g_free_space)
   \   0059  C1                POP     BC
   \   005A  09                ADD     HL,BC
   \   005B  EB                EX      DE,HL
   \   005C  2A0200            LD      HL,(g_free_space+2)
   \   005F  C1                POP     BC
   \   0060  ED4A              ADC     HL,BC
   \   0062  4D                LD      C,L
   \   0063  44                LD      B,H
   \   0064  EB                EX      DE,HL
   \   0065  3E0A              LD      A,10
   \   0067  CD0000            CALL    LWRD ?L_LSH_L03
   \   006A  CD0000            CALL    LWRD ?UL_DIV_L03
   \   006D  DD75FC            LD      (IX-4),L
   \   0070  DD74FD            LD      (IX-3),H
   \   0073  DD71FE            LD      (IX-2),C
   \   0076  DD70FF            LD      (IX-1),B
     73              total_sec=total_sec/1000; 
   \   0079  210000            LD      HL,0
   \   007C  39                ADD     HL,SP
   \   007D  010000            LD      BC,0
   \   0080  11E803            LD      DE,1000
   \   0083  CD0000            CALL    LWRD ?UL_DIVASG_L03
     74               
     75              // 比特率为64K,384K(双声道)的时间不变,比特率为32K,192K(单声道)的时间乘以2
     76              if(g_record_vars.rec_bitrate == 1 || g_record_vars.rec_bitrate == 3)
   \   0086  3A0300            LD      A,(g_record_vars+3)
   \   0089  3D                DEC     A
   \   008A  2807              JR      Z,?0007
   \   008C  3A0300            LD      A,(g_record_vars+3)
   \   008F  FE03              CP      3
   \   0091  2005              JR      NZ,?0006
   \   0093            ?0007:
   \   0093            ?0008:
   \   0093            ?0005:
     77                  total_sec = total_sec / 2;
   \   0093  3E01              LD      A,1
   \   0095  CD0000            CALL    LWRD ?UL_RSHASG_L03
   \   0098            ?0006:
     78                  
     79              time.hour = total_sec / 3600;
   \   0098  210000            LD      HL,0
   \   009B  E5                PUSH    HL
   \   009C  21100E            LD      HL,3600
   \   009F  E5                PUSH    HL
   \   00A0  DD4EFE            LD      C,(IX-2)
   \   00A3  DD46FF            LD      B,(IX-1)
   \   00A6  DD6EFC            LD      L,(IX-4)
   \   00A9  DD66FD            LD      H,(IX-3)
   \   00AC  CD0000            CALL    LWRD ?UL_DIV_L03
   \   00AF  7D                LD      A,L
   \   00B0  320000            LD      (time),A
     80              total_sec %= 3600;
   \   00B3  210000            LD      HL,0
   \   00B6  39                ADD     HL,SP
   \   00B7  010000            LD      BC,0
   \   00BA  11100E            LD      DE,3600
   \   00BD  CD0000            CALL    LWRD ?UL_MODASG_L03
     81              time.minute = total_sec / 60;
   \   00C0  210000            LD      HL,0
   \   00C3  E5                PUSH    HL
   \   00C4  2E3C              LD      L,60
   \   00C6  E5                PUSH    HL
   \   00C7  EB                EX      DE,HL
   \   00C8  CD0000            CALL    LWRD ?UL_DIV_L03
   \   00CB  7D                LD      A,L
   \   00CC  320100            LD      (time+1),A
     82              time.second= total_sec % 60;
   \   00CF  6A                LD      L,D
   \   00D0  62                LD      H,D
   \   00D1  E5                PUSH    HL
   \   00D2  EB                EX      DE,HL
   \   00D3  E5                PUSH    HL
   \   00D4  DD4EFE            LD      C,(IX-2)
   \   00D7  DD46FF            LD      B,(IX-1)
   \   00DA  DD6EFC            LD      L,(IX-4)
   \   00DD  DD66FD            LD      H,(IX-3)
   \   00E0  CD0000            CALL    LWRD ?UL_MOD_L03
   \   00E3  7D                LD      A,L
   \   00E4  320200            LD      (time+2),A
     83          
     84          }
   \   00E7            ?0009:
   \   00E7  DDF9              LD      SP,IX
   \   00E9  DDE1              POP     IX
   \   00EB  D1                POP     DE
   \   00EC  C1                POP     BC
   \   00ED  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00F0            parse_total_num:

⌨️ 快捷键说明

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