main.lst

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

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

   \   0000                    NAME    main(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  BankSwitch
   \   0000                    EXTERN  ClearScreen
   \   0000                    PUBLIC  Close_RecRoute
   \   0000                    EXTERN  DRV_ActiveDrive
   \   0000                    EXTERN  DRV_ActiveUD
   \   0000                    EXTERN  DRV_DetectUD
   \   0000                    EXTERN  DisableAIN
   \   0000                    EXTERN  DisablePA
   \   0000                    EXTERN  FS_Backup
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_Dir
   \   0000                    EXTERN  FS_GetCurDir
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  FS_GetSpace
   \   0000                    EXTERN  FS_MakeDir
   \   0000                    EXTERN  FS_Restore
   \   0000                    EXTERN  GetDefaultComval
   \   0000                    EXTERN  GetSysMsg
   \   0000                    EXTERN  ResClose
   \   0000                    EXTERN  ResOpen
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  VMRead
   \   0000                    EXTERN  VMWrite
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  ap_sleep
   \   0000                    EXTERN  channelnum
   \   0000                    EXTERN  dir_name
   \   0000                    PUBLIC  g_DiskStateFlag
   \   0000                    PUBLIC  g_comval
   \   0000                    PUBLIC  g_dir_ext
   \   0000                    PUBLIC  g_dir_record
   \   0000                    PUBLIC  g_dir_voice
   \   0000                    PUBLIC  g_file_build_time
   \   0000                    PUBLIC  g_file_name_time
   \   0000                    PUBLIC  g_file_num
   \   0000                    PUBLIC  g_file_size
   \   0000                    PUBLIC  g_free_space
   \   0000                    PUBLIC  g_now_time
   \   0000                    PUBLIC  g_rec_from
   \   0000                    PUBLIC  g_rec_time
   \   0000                    PUBLIC  g_record_vars
   \   0000                    PUBLIC  main
   \   0000                    PUBLIC  make_dirname
   \   0000                    PUBLIC  menu
   \   0000                    PUBLIC  numsave
   \   0000                    PUBLIC  read_var
   \   0000                    PUBLIC  rec_source_tab
   \   0000                    PUBLIC  region_msg
   \   0000                    EXTERN  res_fp
   \   0000                    PUBLIC  reset_record_dir
   \   0000                    PUBLIC  show_error
   \   0000                    EXTERN  show_stop
   \   0000                    PUBLIC  time
   \   0000                    EXTERN  ui_err_msg
   \   0000                    EXTERN  ui_show_a
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  wavrSendCommand
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    EXTERN  ?MEMCMP_L11
   \   0000                    RSEG    CODE
   \   0000            Close_RecRoute:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        voice recorder main program.
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: main.c,v 1.2 2006/07/14 06:44:42 tangwh 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          
     20          //const
     21          const region_t region_msg={0, 24, SCR_WIDTH, 32};
     22          const byte rec_source_tab[3]={R_LINEIN,R_SPDIF,R_MIC};
     23          
     24          //global
     25          comval_t g_comval;
     26          record_vars_t g_record_vars;
     27          int  numsave=0;        //保存进度条值
     28          BYTE g_rec_from;    //当前的录音源 //current record source
     29          BYTE g_file_num;    //录音文件总个数//record files quantity
     30          time_t time;//char g_total_time[9];    //00:00:00
     31          char g_now_time[9];    //00:00:00
     32          time_t g_rec_time;    //实时显示录音的时间//real time record time
     33          char  g_file_name_time[7];    //"WAV01 2004/01/01"
     34          char  g_file_build_time[12];    //"WAV01 2004/01/01"
     35          ulong g_free_space;    //剩余磁盘空间//remaining disk space
     36          ulong g_file_size;    //当前录音文件的page数// current record file's page count
     37          extern channelnum_t channelnum;
     38          
     39          //controls use these
     40          function_menu_t menu;
     41          //file_location_t location;
     42          char g_dir_record[] = "RECORD     ";
     43          char g_dir_voice[] = "VOICE      ";
     44          char g_dir_ext[] = "*  ";
     45          
     46          BYTE g_DiskStateFlag = 0;//b7 = 1:flash 盘已格式化
     47                                   //b6 = 1:flash 盘无文件
     48                                   //b3 = 1:卡已格式化
     49                                   //b2 = 1: 卡无文件
     50                                   //b5,b4,b1,b0 : 保留
     51                                   //default = 0x00
     52          //========== func  =================
     53          
     54          #define REGDF_POWER_CTRL      0xdf
     55          #define CloseFMPower() output8(REGDF_POWER_CTRL,((input8(REGDF_POWER_CTRL)&0xfd)|0x01))
     56          
     57          /*
     58          ********************************************************************************
     59          * Description : 关闭所有MP3录音的硬件通道(环境)//close all MP3 record's hardware
     60          *
     61          * Arguments   : 无 //none
     62          *
     63          * Returns     : 无 //none
     64          *
     65          * Notes       : 关闭内容:Disable: PA,Mix,AnalogIN,//close list: Disable PA,MIX,AnalogIN
     66          *
     67          ********************************************************************************
     68          */
     69          void Close_RecRoute(void)
     70          {
     71               DisableAIN();
   \   0000  CD0000            CALL    LWRD DisableAIN
     72               DisablePA();
   \   0003  CD0000            CALL    LWRD DisablePA
     73          }
   \   0006  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0009            show_error:
     74          /*
     75          ********************************************************************************
     76          * Description : 带有显示的调试程序.//debug progress with display
     77          *
     78          * Arguments   :
     79          *
     80          * Returns     :
     81          *
     82          * Notes       :
     83          *
     84          ********************************************************************************
     85          */
     86          /*
     87          void MY_DUMP(char *string, int value)
     88          {
     89              char dump_buf[6];
     90                  dump_buf[0] = ',';
     91                  SetTextPos(0, 16);
     92                  PutS((string), -1);
     93                  itoa_4((value), &dump_buf[1]);
     94                  dump_buf[5] = '>';
     95          
     96                  PutS(dump_buf, 6);
     97                  UpdateScreen(NULL);
     98                  while( ap_get_message() != (AP_KEY_EQ| AP_KEY_UP)) {;}
     99          }
    100          */
    101          /*
    102          ********************************************************************************
    103          * Description : 显示错误信息,等待2秒返回 //display error message,return after 2 seconds
    104          *
    105          * Arguments   : msg_id, 错误信息的资源代号 //msg_id --error message resource ID
    106          *
    107          * Returns     : 结果消息或0 //return result or zero
    108          *
    109          * Notes       : 注意在等待2秒前清除pool, 确保2s //need to clear message pool before waiting,make sure delay 2s
    110          *
    111          ********************************************************************************
    112          */
    113          int show_error(WORD msg_id)
    114          {
   \   0009  C5                PUSH    BC
   \   000A  DDE5              PUSH    IX
    115          
    116              ui_err_msg(msg_id,msg_id,g_comval.langid);
   \   000C  ED4B0C00          LD      BC,(g_comval+12)
   \   0010  0600              LD      B,0
   \   0012  C5                PUSH    BC
   \   0013  4B                LD      C,E
   \   0014  42                LD      B,D
   \   0015  3E00              LD      A,BYTE3 ui_err_msg
   \   0017  210000            LD      HL,LWRD ui_err_msg
   \   001A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   001D  F1                POP     AF
    117              //clear message pool to make sure delay 2s
    118              Close_RecRoute();
   \   001E  3E00              LD      A,BYTE3 Close_RecRoute
   \   0020  210000            LD      HL,LWRD Close_RecRoute
   \   0023  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    119              CloseFMPower(); 
   \   0026  DBDF              IN      A,(223)
   \   0028  CB8F              RES     1,A
   \   002A  CBC7              SET     0,A
   \   002C  D3DF              OUT     (223),A
   \   002E            ?0003:
    120              while(ap_get_message() != 0) {;} 
   \   002E  CD0000            CALL    LWRD ap_get_message
   \   0031  B7                OR      A
   \   0032  20FA              JR      NZ,?0003
   \   0034            ?0004:
   \   0034            ?0002:
    121              return ap_sleep(4);
   \   0034  110400            LD      DE,4
   \   0037  3E00              LD      A,BYTE3 ap_sleep
   \   0039  210000            LD      HL,LWRD ap_sleep
   \   003C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   003F  2600              LD      H,0
    122          }
   \   0041  DDE1              POP     IX
   \   0043  C1                POP     BC
   \   0044  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0047            reset_record_dir:
    123          
    124          
    125          //=============func end =======================
    126          
    127          /*
    128          ********************************************************************************
    129          * Description : 设置录音缺省目录\Record\Voice   //set default path:\Record\Voice
    130          *
    131          * Arguments   :
    132          *
    133          * Returns     :
    134          *
    135          * Notes       : 把\Record\Voice做为当前目录//set "\Record\Voice" as current directory
    136          *
    137          ********************************************************************************
    138          */
    139          BOOL reset_record_dir(void)
    140          {
   \   0047  C5                PUSH    BC
   \   0048  D5                PUSH    DE
   \   0049  FDE5              PUSH    IY
   \   004B  DDE5              PUSH    IX
   \   004D  DD210000          LD      IX,0
   \   0051  DD39              ADD     IX,SP
   \   0053  21ECFF            LD      HL,65516
   \   0056  39                ADD     HL,SP

⌨️ 快捷键说明

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