ui_stop.lst

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

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

   \   0000                    NAME    ui_stop(17)
   \   0000                    RSEG    AP_UI_STP(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  ChangeMusic
   \   0000                    EXTERN  CheckMusicType
   \   0000                    EXTERN  ClearTimePara
   \   0000                    EXTERN  GetBattery
   \   0000                    EXTERN  GetInformation
   \   0000                    EXTERN  PlayStatus
   \   0000                    EXTERN  RefreshMainScreen
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetContrast
   \   0000                    EXTERN  ShowNowTime
   \   0000                    EXTERN  Totaltime
   \   0000                    EXTERN  UpdateFileSelector
   \   0000                    EXTERN  VMRead
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  ap_sleep
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselGetNextFile
   \   0000                    EXTERN  fselGetNo
   \   0000                    EXTERN  fselGetPrevFile
   \   0000                    EXTERN  fselGetTotal
   \   0000                    EXTERN  fselSetMode
   \   0000                    EXTERN  g_BatteryType
   \   0000                    EXTERN  g_TagInfoBuf
   \   0000                    EXTERN  g_TagInfoBuf1
   \   0000                    EXTERN  g_amv_vars
   \   0000                    EXTERN  g_autoswitch_counter
   \   0000                    EXTERN  g_changevolume
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_currentMusicType
   \   0000                    PUBLIC  g_firstplay_flag
   \   0000                    EXTERN  g_from_browser
   \   0000                    EXTERN  g_langid
   \   0000                    EXTERN  g_menu_active
   \   0000                    EXTERN  g_musicamount
   \   0000                    EXTERN  g_musicsequence
   \   0000                    PUBLIC  g_rSetPlayStatus
   \   0000                    EXTERN  g_result
   \   0000                    PUBLIC  g_volcounter
   \   0000                    EXTERN  main_ResShowPic
   \   0000                    EXTERN  make_dirname
   \   0000                    EXTERN  need_draw
   \   0000                    PUBLIC  time_cmp
   \   0000                    EXTERN  ui_play
   \   0000                    EXTERN  ui_run_realtime
   \   0000                    EXTERN  ui_show_batt
   \   0000                    EXTERN  ui_show_msg
   \   0000                    EXTERN  ui_show_vol
   \   0000                    PUBLIC  ui_stop
   \   0000                    PUBLIC  ui_stop_loop
   \   0000                    EXTERN  ui_stop_menu
   \   0000                    EXTERN  vol_callback
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    AP_UI_STP
   \   0000            time_cmp:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        This program demostrates how to build an AP
      5          *
      6          *        (c) Copyright Actions Co,Ld.
      7          *
      8          *  $Id: ui_stop.c,v 1.1.1.1 2006/05/22 03:24:02 selina Exp $
      9          *******************************************************************************
     10          */
     11          #include "ap_amv.h"
     12          #include "define.h"
     13          
     14          bool g_firstplay_flag = TRUE; 
     15          extern comval_t g_comval; //系统变量,ap不能更改
     16          extern bool ActiveDriveOK;
     17          extern bool g_menu_active; //为1进入MENU菜单,主要用来丢掉从目录选择时长按mode键返回
     18          int ui_stop_loop(void);
     19          extern void make_dirname(void);
     20          extern int g_autoswitch_counter; 
     21          
     22          char g_volcounter=0;
     23          bool    g_rSetPlayStatus = FALSE;
     24          //======================================================================================
     25          //RESULT_CURR_UI: 还要处在当前界面
     26          //RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
     27          //RESULT_LAST_UI: 到上一级界面
     28          //--------------------------------------------------------------------------------------
     29          #pragma codeseg(AP_UI_STP)
     30          
     31          int time_cmp(const AmvFileBreakPntInfor *time1, const time_t *time2)
     32          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  D5                PUSH    DE
   \   0005  DDE1              POP     IX
   \   0007  C5                PUSH    BC
   \   0008  FDE1              POP     IY
     33              if(time1->TimeHou == time2->hour)
   \   000A  0A                LD      A,(BC)
   \   000B  47                LD      B,A
   \   000C  210600            LD      HL,6
   \   000F  19                ADD     HL,DE
   \   0010  7E                LD      A,(HL)
   \   0011  B8                CP      B
   \   0012  2029              JR      NZ,?0003
   \   0014            ?0002:
     34              {
     35                  if(time1->TimeMin == time2->minute)
   \   0014  DD7E05            LD      A,(IX+5)
   \   0017  FDBE01            CP      (IY+1)
   \   001A  2017              JR      NZ,?0005
   \   001C            ?0004:
     36                  {
     37                      if(time1->TimeSec == time2->second)
   \   001C  DD7E04            LD      A,(IX+4)
   \   001F  FDBE02            CP      (IY+2)
   \   0022  2005              JR      NZ,?0007
   \   0024            ?0006:
     38                      {
     39                          return 0;
   \   0024  210000            LD      HL,0
     40                      }
   \   0027  1820              JR      ?0008
   \   0029            ?0007:
     41                      else
     42                      {
     43                          return ((int)(time1->TimeSec) - time2->second);
   \   0029  FD4E02            LD      C,(IY+2)
   \   002C  0600              LD      B,0
   \   002E  DD6E04            LD      L,(IX+4)
   \   0031  1812              JR      ?0098
     44                      }
   \   0033            ?0005:
     45                  }
     46                  else
     47                  {
     48                      return ((int)(time1->TimeMin) - time2->minute);
   \   0033  FD4E01            LD      C,(IY+1)
   \   0036  0600              LD      B,0
   \   0038  DD6E05            LD      L,(IX+5)
   \   003B  1808              JR      ?0098
     49                  }
   \   003D            ?0003:
     50              }
     51              else
     52              {
     53                  return ((int)(time1->TimeHou) - time2->hour);
   \   003D  FD4E00            LD      C,(IY+0)
   \   0040  0600              LD      B,0
   \   0042  DD6E06            LD      L,(IX+6)
   \   0045            ?0098:
   \   0045  60                LD      H,B
   \   0046  A7                AND     A
   \   0047  ED42              SBC     HL,BC
     54              }
   \   0049            ?0008:
   \   0049  DDE1              POP     IX
   \   004B  FDE1              POP     IY
   \   004D  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
     55          }
   \   0050            ui_stop:
     56          
     57          int ui_stop(void)
     58          {
   \   0050  C5                PUSH    BC
   \   0051  D5                PUSH    DE
     59              ap_message_init(NULL);//开始算STANDBY 时间
   \   0052  CD2901            CALL    LWRD ?0122
     60              g_menu_active=TRUE;
   \   0055  3E01              LD      A,1
   \   0057  320000            LD      (g_menu_active),A
   \   005A            ?0011:
     61              do
     62              {
     63                   if (UpdateFileSelector() == 0)
   \   005A  3E00              LD      A,BYTE3 UpdateFileSelector
   \   005C  210000            LD      HL,LWRD UpdateFileSelector
   \   005F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0062  7D                LD      A,L
   \   0063  B4                OR      H
   \   0064  CA2101            JP      Z,?0101
   \   0067            ?0012:
     64                   {
     65                       return 0;
     66                   }
   \   0067            ?0013:
     67          
     68          
     69                   g_musicamount = FSELGetTotal(); 
   \   0067  3E00              LD      A,BYTE3 fselGetTotal
   \   0069  210000            LD      HL,LWRD fselGetTotal
   \   006C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   006F  7D                LD      A,L
   \   0070  320000            LD      (g_musicamount),A
     70                   if(g_musicamount==0)
   \   0073  B7                OR      A
   \   0074  201D              JR      NZ,?0015
   \   0076            ?0014:
   \   0076            ?0017:
     71                   {
     72                      // ui_show_msg (MFILEOUT, MFILEOUT, g_comval.langid);
     73                      while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
   \   0076  CD0000            CALL    LWRD ap_get_message
   \   0079  B7                OR      A
   \   007A  20FA              JR      NZ,?0014
   \   007C            ?0018:
   \   007C            ?0016:
     74                      return  ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
   \   007C  ED4B0000          LD      BC,(g_langid)
   \   0080  47                LD      B,A
   \   0081  C5                PUSH    BC
   \   0082  017402            LD      BC,628
   \   0085  59                LD      E,C
   \   0086  50                LD      D,B
   \   0087  3E00              LD      A,BYTE3 ui_show_msg
   \   0089  210000            LD      HL,LWRD ui_show_msg
   \   008C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   008F  F1                POP     AF
     75                   }
   \   0090  C32401            JP      LWRD ?0022
   \   0093            ?0015:
     76          
     77                   g_musicsequence = FSELGetNo();
   \   0093  3E00              LD      A,BYTE3 fselGetNo
   \   0095  210000            LD      HL,LWRD fselGetNo
   \   0098  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   009B  7D                LD      A,L
   \   009C  320000            LD      (g_musicsequence),A
     78                   FSELSetMode(FSEL_ALL_REPEATALL);
   \   009F  1E04              LD      E,4
   \   00A1  3E00              LD      A,BYTE3 fselSetMode
   \   00A3  210000            LD      HL,LWRD fselSetMode
   \   00A6  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     79                   fselGetLocation(& g_amv_vars.location);         //add by ybfu 2004-12-22 15:26
   \   00A9  CD6601            CALL    LWRD ?0128
     80                   make_dirname();   
   \   00AC  3E00              LD      A,BYTE3 make_dirname

⌨️ 快捷键说明

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