sub_function2.lst

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

LST
1,392
字号
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:57:17 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\sub_function2.c         #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\sub_function2.lst  #
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\sub_function2.r01   #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\sub_function2.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\sub_function2.c         #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    sub_function2(17)
   \   0000                    RSEG    AP_SUB_FUN2(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    RSEG    AP_FUN2_CONST(0)
   \   0000                    EXTERN  BankSwitch
   \   0000                    PUBLIC  ChangeVolume
   \   0000                    PUBLIC  CheckMusicType
   \   0000                    PUBLIC  CheckPlayrateLimit
   \   0000                    PUBLIC  CheckReplaygapLimit
   \   0000                    PUBLIC  CheckReplaytimesLimit
   \   0000                    PUBLIC  CheckVolumeLimit
   \   0000                    EXTERN  ClearScreen
   \   0000                    PUBLIC  ClearTimePara
   \   0000                    PUBLIC  ClosePA
   \   0000                    EXTERN  DisablePA
   \   0000                    PUBLIC  DisplayTimeRollback
   \   0000                    EXTERN  EnableDAC
   \   0000                    EXTERN  EnablePA
   \   0000                    PUBLIC  ExtMusicstr
   \   0000                    EXTERN  FS_Backup
   \   0000                    EXTERN  FS_CD
   \   0000                    EXTERN  FS_GetName
   \   0000                    EXTERN  FS_Restore
   \   0000                    EXTERN  GetAPEInfoByNo
   \   0000                    EXTERN  GetDefaultComval
   \   0000                    PUBLIC  GetInformation
   \   0000                    EXTERN  OutPutVolume
   \   0000                    EXTERN  RePlayStatus
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  UpDisplayFlag
   \   0000                    EXTERN  VMRead
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  ap_sleep
   \   0000                    EXTERN  dir_name
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  g_OldSecTempBackup
   \   0000                    EXTERN  g_PAOpenFlag
   \   0000                    EXTERN  g_PowerOffFlag
   \   0000                    EXTERN  g_TagInfoBuf
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_currentMusicType
   \   0000                    EXTERN  g_from_browser
   \   0000                    EXTERN  g_introCNT
   \   0000                    EXTERN  g_introCntMode
   \   0000                    EXTERN  g_lyricflag
   \   0000                    EXTERN  g_music_vars
   \   0000                    EXTERN  g_result
   \   0000                    EXTERN  list
   \   0000                    EXTERN  lyricLoad
   \   0000                    EXTERN  lyricQueryExist
   \   0000                    PUBLIC  make_dirname
   \   0000                    EXTERN  mp3GetID3Info
   \   0000                    EXTERN  musicpSendCommand
   \   0000                    EXTERN  need_draw
   \   0000                    PUBLIC  openDAC
   \   0000                    PUBLIC  openPA
   \   0000                    PUBLIC  read_var
   \   0000                    EXTERN  return_to_play
   \   0000                    EXTERN  speed_callback
   \   0000                    PUBLIC  temp_buffer
   \   0000                    EXTERN  ui_auto_update
   \   0000                    EXTERN  ui_slider
   \   0000                    EXTERN  unitochar
   \   0000                    EXTERN  volume_callback
   \   0000                    EXTERN  wmaGetTAGInfo
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   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                    EXTERN  ?STRCPY_L11
   \   0000                    EXTERN  ?STRCAT_L11
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    EXTERN  ?STRCMP_L11
   \   0000                    RSEG    AP_SUB_FUN2
   \   0000            CheckVolumeLimit:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        This program demostrates how to build an AP
      5          *
      6          *        (c) Copyright Actions Co,Ld.
      7          *
      8          *  $Id: sub_function2.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
      9          *******************************************************************************
     10          */
     11          #include "ap_music.h"
     12          
     13          extern char g_TagInfoBuf[90];
     14          extern SD_FILE* g_Resfp_Sav;
     15          extern char return_to_play ; 
     16          
     17          char temp_buffer[9] = { 0 };
     18          void OutPutVolume(int vol);
     19          int DealForDRMsong(void);
     20          int ui_dialog(dialog_t *dialog,int string_id);
     21          BOOL GetAPEInfoByNo(char *filename, ID3Info_t *ID3, BYTE mode);
     22          #pragma memory=constseg(AP_FUN2_CONST)
     23          const char ExtMusicstr [] [4] =
     24              {
     25                  "MP3", "WMA", "ASF", "WMV", "OGG", "APE"
     26              };
     27                
     28          #pragma memory=default
     29          #pragma codeseg(AP_SUB_FUN2)
     30          void CheckVolumeLimit( void )
     31          {
   \   0000  C5                PUSH    BC
     32              if (g_music_vars.volume>31) g_music_vars.volume = 31;
   \   0001  3A0000            LD      A,(g_music_vars)
   \   0004  47                LD      B,A
   \   0005  3E1F              LD      A,31
   \   0007  90                SUB     B
   \   0008  E20D00            JP      PO,?0129
   \   000B  EE80              XOR     128
   \   000D            ?0129:
   \   000D  F21500            JP      P,?0003
   \   0010            ?0002:
   \   0010  3E1F              LD      A,31
   \   0012  320000            LD      (g_music_vars),A
   \   0015            ?0003:
     33          
     34              if (g_music_vars.volume<0) g_music_vars.volume = 0;
   \   0015  3A0000            LD      A,(g_music_vars)
   \   0018  B7                OR      A
   \   0019  F22000            JP      P,?0005
   \   001C            ?0004:
   \   001C  AF                XOR     A
   \   001D  320000            LD      (g_music_vars),A
   \   0020            ?0005:
     35          }
   \   0020  C1                POP     BC
   \   0021  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0024            CheckPlayrateLimit:
     36          
     37          void CheckPlayrateLimit( void )
     38          {
   \   0024  C5                PUSH    BC
     39              if (g_music_vars.play_rate > 8)
   \   0025  3A0300            LD      A,(g_music_vars+3)
   \   0028  47                LD      B,A
   \   0029  3E08              LD      A,8
   \   002B  90                SUB     B
   \   002C  E23100            JP      PO,?0130
   \   002F  EE80              XOR     128
   \   0031            ?0130:
   \   0031  F23900            JP      P,?0007
   \   0034            ?0006:
     40              {
     41                  g_music_vars.play_rate = 8;
   \   0034  3E08              LD      A,8
   \   0036  320300            LD      (g_music_vars+3),A
   \   0039            ?0007:
     42              }
     43              if (g_music_vars.play_rate < -8)
   \   0039  3A0300            LD      A,(g_music_vars+3)
   \   003C  EE80              XOR     128
   \   003E  FE78              CP      120
   \   0040  3005              JR      NC,?0009
   \   0042            ?0008:
     44              {
     45                  g_music_vars.play_rate = -8;
   \   0042  3EF8              LD      A,248
   \   0044  320300            LD      (g_music_vars+3),A
   \   0047            ?0009:
     46              }
     47          }
   \   0047  C1                POP     BC
   \   0048  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   004B            CheckReplaygapLimit:
     48          
     49          void CheckReplaygapLimit( void )
     50          {
   \   004B  C5                PUSH    BC
     51              if (g_music_vars.replaygap<1)
   \   004C  3A0500            LD      A,(g_music_vars+5)
   \   004F  FE01              CP      1
   \   0051  3005              JR      NC,?0011
   \   0053            ?0010:
     52              {
     53                  g_music_vars.replaygap = 1;
   \   0053  3E01              LD      A,1
   \   0055  320500            LD      (g_music_vars+5),A
   \   0058            ?0011:
     54              }
     55              if (g_music_vars.replaygap>10)
   \   0058  47                LD      B,A
   \   0059  3E0A              LD      A,10
   \   005B  B8                CP      B
   \   005C  3003              JR      NC,?0013
   \   005E            ?0012:
     56              {
     57                  g_music_vars.replaygap = 10;
   \   005E  320500            LD      (g_music_vars+5),A
   \   0061            ?0013:
     58              }
     59          }
   \   0061  C1                POP     BC
   \   0062  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0065            CheckReplaytimesLimit:
     60          
     61          void CheckReplaytimesLimit( void )
     62          {
   \   0065  C5                PUSH    BC
     63              if (g_music_vars.replaytimes<1)
   \   0066  3A0400            LD      A,(g_music_vars+4)
   \   0069  FE01              CP      1
   \   006B  3005              JR      NC,?0015
   \   006D            ?0014:
     64              {
     65                  g_music_vars.replaytimes = 1;
   \   006D  3E01              LD      A,1
   \   006F  320400            LD      (g_music_vars+4),A
   \   0072            ?0015:
     66              }
     67              if (g_music_vars.replaytimes>10)
   \   0072  47                LD      B,A
   \   0073  3E0A              LD      A,10
   \   0075  B8                CP      B
   \   0076  3003              JR      NC,?0017
   \   0078            ?0016:
     68              {
     69                  g_music_vars.replaytimes = 10;
   \   0078  320400            LD      (g_music_vars+4),A
   \   007B            ?0017:
     70              }
     71          }
   \   007B  C1                POP     BC
   \   007C  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   007F            CheckMusicType:
     72          
     73          //-------------------------------------
     74          /*
     75          *             Music_type_t CheckMusicType(char *filename)
     76          *
     77          * Description : 检测当前是哪种类型的MUSIC文件
     78          *
     79          * Arguments   : char *filename  文件名
     80          *
     81          * Returns     : Music_type_t 文件类型
     82          *
     83          * Notes       :
     84          *
     85          ********************************************************************************
     86          */
     87          Music_type_t CheckMusicType( char * filename )
     88          {
   \   007F  C5                PUSH    BC
   \   0080  DDE5              PUSH    IX
   \   0082  F5                PUSH    AF
   \   0083  F5                PUSH    AF

⌨️ 快捷键说明

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