ui_follow.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,135 行 · 第 1/4 页

LST
1,135
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:57:29 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\ui_follow.c             #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\ui_follow.lst      #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\ui_follow.r01       #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\ui_follow.s01      #
#       Command line  =  -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K    #
#                        -w -gA -z9 -RCODE -r0 -DNAPDEBUG                    #
#                        -LD:\case_i_d913f\ap\ap_music\List\ -q -t8          #
#                        -AD:\case_i_d913f\ap\ap_music\List\                 #
#                        -ND:\case_i_d913f\ap\ap_music\List\ -X              #
#                        -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\         #
#                        d:\case_i_d913f\AP\AP_MUSIC\ui_follow.c             #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_follow(17)
   \   0000                    RSEG    AP_UI_FL(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    EXTERN  ABPointTimeSize
   \   0000                    EXTERN  BankSwitch
   \   0000                    EXTERN  ChangeVolume
   \   0000                    EXTERN  DealForExitRec
   \   0000                    EXTERN  DealPlayKey
   \   0000                    EXTERN  DisplayErrMsg
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FCreate
   \   0000                    EXTERN  FS_FRemove
   \   0000                    EXTERN  FS_FWrite
   \   0000                    EXTERN  FS_GetInfo
   \   0000                    EXTERN  FS_GetSpace
   \   0000                    EXTERN  GetBattery
   \   0000                    EXTERN  OpenMusic
   \   0000                    EXTERN  RePlayStatus
   \   0000                    EXTERN  RefreshMainScreen
   \   0000                    EXTERN  Replaytimes_CNT
   \   0000                    EXTERN  ReturnNotInit
   \   0000                    EXTERN  ShowNowTime
   \   0000                    EXTERN  Show_time_FC
   \   0000                    EXTERN  UpDisplayFlag
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  g_2HZ_CNT
   \   0000                    EXTERN  g_FCexitflag
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_music_vars
   \   0000                    EXTERN  g_rSetPlayStatus
   \   0000                    EXTERN  g_result
   \   0000                    EXTERN  g_volcounter
   \   0000                    EXTERN  musicpSendCommand
   \   0000                    EXTERN  need_draw
   \   0000                    EXTERN  return_to_play
   \   0000                    EXTERN  ui_auto_update
   \   0000                    PUBLIC  ui_followAB
   \   0000                    PUBLIC  ui_followRec
   \   0000                    EXTERN  ui_run_realtime
   \   0000                    EXTERN  ui_show_batt
   \   0000                    EXTERN  wavrProceed
   \   0000                    EXTERN  wavrSendCommand
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_CMP_L02
   \   0000                    EXTERN  ?SL_CMP_L03
   \   0000                    EXTERN  ?L_INC_L03
   \   0000                    EXTERN  ?L_DEC_L03
   \   0000                    EXTERN  ?L_DECASG_L03
   \   0000                    EXTERN  ?S_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    AP_UI_FL
   \   0000            ui_followRec:
      1          /*
      2          *******************************************************************************
      3          *                        SDK30F_D1
      4          *                     music player follow compare sub
      5          *
      6          *                (c) Copyright 2002, Actions Co,Ld.
      7          *                        All Right Reserved
      8          *
      9          * File: ui_follow.c
     10          * By  : rcmai
     11          * Version: 1> v1.00     first version     2004-3-19 8:28
     12          *******************************************************************************
     13          * $Id: ui_follow.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
     14          *******************************************************************************
     15          */
     16          
     17          #include "ap_music.h"
     18          
     19          #define DEF_RecLowBatt 5//定义最低能录音的电压
     20          
     21          //判断是低电的次数,当电压值低于DEF_RecLowBatt值次数超过这个值时确认为低电
     22          #define DEF_RecLowBatTime 5
     23          extern char return_to_play;        //为一表示从其他界面返回播放界面
     24          extern BYTE Replaytimes_CNT; //
     25          extern bool ReturnNotInit;   //TRUE:表示下一个调用不用初始化,
     26          extern WORD ABPointTimeSize;
     27          extern bool g_FCexitflag;
     28          
     29          void DealForExitRec( void ); //退出录音时的处理
     30          void Show_time_FC( void );
     31          void OpenMusic( void );
     32          
     33          extern char g_volcounter;
     34          extern bool     g_rSetPlayStatus;
     35          
     36          #pragma codeseg(AP_UI_FL)
     37          /*
     38          ********************************************************************************
     39          *             int ui_followRec( void )
     40          *
     41          * Description : 跟读--------录音子状态
     42          *
     43          * Arguments   : void
     44          *
     45          * Returns     : int
     46          *               RESULT_UI_STOP: 表示要进入停止状态,此时所有module已关闭
     47          *               key: 热健消息
     48          *               NULL: 表示正常退出
     49          *
     50          * Notes       : 在此状态下,按play到stop状态;按mode到play;按NEXT到对比状态;
     51          *
     52          ********************************************************************************
     53          */
     54          int ui_followRec( void )
     55          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  F2FF              DEFW    65522
   \   0005  FDE5              PUSH    IY
     56              int key;
     57              long DiskSpace;
     58              HANDLE TempFileHandle;
     59              BYTE LowBatt_CNT = 0;//低电计数器
   \   0007  DD36FA00          LD      (IX-6),0
     60              int result;
     61          
     62              if (++Replaytimes_CNT > g_music_vars.replaytimes)
   \   000B  210000            LD      HL,Replaytimes_CNT
   \   000E  34                INC     (HL)
   \   000F  46                LD      B,(HL)
   \   0010  3A0400            LD      A,(g_music_vars+4)
   \   0013  B8                CP      B
   \   0014  110000            LD      DE,?0004
   \   0017  3008              JR      NC,?0003
   \   0019            ?0002:
     63              {
     64                  FS_FRemove(FollowReadTempFileName); //如有这个文件就删除
   \   0019  CD0000            CALL    LWRD FS_FRemove
     65                  OpenMusic();
   \   001C  CDD202            CALL    LWRD ?0134
     66                  RePlayStatus = ABLoopPlay;
     67                  UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
     68                  need_draw = TRUE;
   \   001F  183F              JR      ?0092
     69                  return NULL;
     70              }
   \   0021            ?0003:
     71          
     72          
     73              FS_FRemove(FollowReadTempFileName); //如有这个文件就删除
   \   0021  CD0000            CALL    LWRD FS_FRemove
     74              DiskSpace = FS_GetSpace(1);
   \   0024  1E01              LD      E,1
   \   0026  CD0000            CALL    LWRD FS_GetSpace
   \   0029  DD75F4            LD      (IX-12),L
   \   002C  DD74F5            LD      (IX-11),H
   \   002F  DD71F6            LD      (IX-10),C
   \   0032  DD70F7            LD      (IX-9),B
     75          
     76              //如果磁盘空间少于100k不能跟读
     77              //if( DiskSpace  <= 32 + 20 )
     78              if( DiskSpace  <= 200 )
   \   0035  C5                PUSH    BC
   \   0036  E5                PUSH    HL
   \   0037  010000            LD      BC,0
   \   003A  21C800            LD      HL,200
   \   003D  CD0000            CALL    LWRD ?SL_CMP_L03
   \   0040  3820              JR      C,?0006
   \   0042            ?0005:
     79              {
     80                  DisplayErrMsg(MWRIERR);
   \   0042  CD0103            CALL    LWRD ?0136
     81                  OpenMusic();
   \   0045  3E00              LD      A,BYTE3 OpenMusic
   \   0047  210000            LD      HL,LWRD OpenMusic
   \   004A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     82                  RePlayStatus = ABLoopPlay;
   \   004D  3E03              LD      A,3
   \   004F  320000            LD      (RePlayStatus),A
     83                  //UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
     84                  SetFullInterface();
   \   0052  AF                XOR     A
   \   0053  320000            LD      (ui_auto_update),A
   \   0056  210000            LD      HL,UpDisplayFlag
   \   0059  7E                LD      A,(HL)
   \   005A  F6C1              OR      193
   \   005C  77                LD      (HL),A
   \   005D  23                INC     HL
   \   005E  36FF              LD      (HL),255
     85                  need_draw = TRUE;
   \   0060            ?0092:
   \   0060  1829              JR      ?0093
     86                  return NULL;
     87              }
   \   0062            ?0006:
     88          
     89              TempFileHandle = FS_FCreate(FollowReadTempFileName);
   \   0062  110000            LD      DE,?0004
   \   0065  CD0000            CALL    LWRD FS_FCreate
   \   0068  DD75F8            LD      (IX-8),L
   \   006B  DD74F9            LD      (IX-7),H
     90              if( TempFileHandle == NULL )
   \   006E  7D                LD      A,L
   \   006F  B4                OR      H
   \   0070  201B              JR      NZ,?0008
   \   0072            ?0007:
     91              {
     92                  switch ( FS_GetInfo() )
   \   0072  CD0000            CALL    LWRD FS_GetInfo
   \   0075  FE06              CP      6
   \   0077  2005              JR      NZ,?0011
   \   0079            ?0010:
     93                  {
     94                  case FS_INFO_SPACE_OUT:       //6      表示文件操作或目录操作没有磁盘空间,不能写数据或者扩展子目录
     95                      DisplayErrMsg(MWRIERR);
   \   0079  11FF01            LD      DE,511
   \   007C  1807              JR      ?0079
     96                      break;
   \   007E            ?0011:
   \   007E  FE07              CP      7
   \   0080  2006              JR      NZ,?0009
     97                  case FS_INFO_DIR_OUT:         //7      文件操作根目录目录项满
     98                      DisplayErrMsg(MDIROUT);
   \   0082  111902            LD      DE,537
   \   0085            ?0079:
   \   0085  CD0403            CALL    LWRD ?0137
     99                      break;
   \   0088            ?0012:
    100          
    101                  default:
    102                      break;
   \   0088            ?0009:
    103                  }
    104                  OpenMusic();
   \   0088  CDD202            CALL    LWRD ?0134
    105                  RePlayStatus = ABLoopPlay;
    106                  UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
    107                  need_draw = TRUE;
   \   008B            ?0093:
   \   008B  1836              JR      ?0094
    108                  return NULL;
    109              }
   \   008D            ?0008:
    110              {
    111                  char *i;
    112                  i = (char *)0x1000;
   \   008D  DD36FE10          LD      (IX-2),16
    113                  FS_FWrite(i, 1, TempFileHandle);
   \   0091  E5                PUSH    HL
   \   0092  0E01              LD      C,1
   \   0094  58                LD      E,B
   \   0095  DD56FE            LD      D,(IX-2)
   \   0098  CD0000            CALL    LWRD FS_FWrite
   \   009B  E1                POP     HL
    114              }
    115              FS_FClose( TempFileHandle );
   \   009C  DD5EF8            LD      E,(IX-8)
   \   009F  DD56F9            LD      D,(IX-7)
   \   00A2  CD0000            CALL    LWRD FS_FClose
    116              FS_FRemove(FollowReadTempFileName);
   \   00A5  110000            LD      DE,?0004
   \   00A8  CD0000            CALL    LWRD FS_FRemove
    117          
    118          
    119              // 如电量不足够,就退出。
    120              g_result = GetBattery();

⌨️ 快捷键说明

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