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

📄 music_list_menu.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       18/Nov/107  22:58:12 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d913f\ap\ap_music\music_list_menu.c       #
#       List file     =  d:\case_i_d913f\ap\ap_music\list\music_list_menu.lst#
#       Object file   =  d:\case_i_d913f\ap\ap_music\obj\music_list_menu.r01 #
#       ASM file      =  d:\case_i_d913f\ap\ap_music\list\music_list_menu.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\music_list_menu.c       #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    music_list_menu(17)
   \   0000                    RSEG    AP_MUSIC_LIST(0)
   \   0000                    RSEG    APC_MUSIC_LIST(0)
   \   0000                    RSEG    APD_MUSIC_LIST(0)
   \   0000                    PUBLIC  ActiveSeekNum
   \   0000                    PUBLIC  BLANKSTRING
   \   0000                    PUBLIC  BlankInfor
   \   0000                    EXTERN  FS_FClose
   \   0000                    EXTERN  FS_FRead
   \   0000                    EXTERN  FS_FSeek
   \   0000                    PUBLIC  HeadIDDisplay
   \   0000                    PUBLIC  LastSeekNum
   \   0000                    EXTERN  PutS
   \   0000                    PUBLIC  ReadListBuffer
   \   0000                    PUBLIC  ReadOneSectorData
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  ScrollFlag
   \   0000                    EXTERN  ScrollString
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetTextOutMode
   \   0000                    EXTERN  SetTextPos
   \   0000                    PUBLIC  active_location
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  g_comval
   \   0000                    EXTERN  g_file_list_total
   \   0000                    EXTERN  g_music_vars
   \   0000                    EXTERN  list_fp
   \   0000                    EXTERN  menu_pos_list
   \   0000                    EXTERN  menulist_bck_pic
   \   0000                    EXTERN  region_scroll
   \   0000                    EXTERN  scroll_buf
   \   0000                    PUBLIC  show_active_musiclist
   \   0000                    PUBLIC  show_music_list
   \   0000                    PUBLIC  ui_music_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?US_DIV_L02
   \   0000                    EXTERN  ?US_MOD_L02
   \   0000                    EXTERN  ?S_MUL_L02
   \   0000                    EXTERN  ?C_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                    EXTERN  ?STRLEN_L11
   \   0000                    RSEG    AP_MUSIC_LIST
   \   0000            show_active_musiclist:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        This program demostrates how to build an AP
      5          *
      6          *        (c) Copyright Actions Co,Ld.
      7          *
      8          *  $Id: music_list_menu.c,v 1.1.1.1 2007/03/02 16:31:22 mars Exp $
      9          *******************************************************************************
     10          */                                                
     11          #include "ap_music.h"     
     12          #define   ListDisplayNum  6          //一屏最多显示的列表数目
     13          #define   OneSectorListNum    7      //每个扇区存储的列表数目  
     14          #define   ListPerByte         71     //每个列表项总的字节数   
     15          #define   OneLocationBYTE    41      //sizeof(location)      
     16          #define Color_BULE_Scroll_def  0x0000001f//深蓝 
     17          extern  handle   list_fp;                          
     18          extern  char     ScrollFlag;   //滚动标志位   
     19          extern char      scroll_buf[];     //滚屏buffer区 
     20          extern region_t region_scroll;  //滚屏区域
     21          extern const char menu_pos_list[];
     22          extern const WORD menulist_bck_pic[];     
     23           
     24          #pragma memory=constseg(APC_MUSIC_LIST) 
     25          const char BLANKSTRING[4] = "[]--";      
     26          #pragma memory=dataseg(APD_MUSIC_LIST)  
     27          char  ReadListBuffer[512]; 
     28          file_location_t active_location;   //当前选择列表文件的路径
     29          char  BlankInfor[16];  
     30          unsigned int  ActiveSeekNum;               //
     31          unsigned int  LastSeekNum;     
     32          WORD  HeadIDDisplay;                      //列表类型显示
     33          #pragma memory=default
     34          
     35          
     36          #pragma codeseg(AP_MUSIC_LIST)
     37          void ReadOneSectorData(unsigned int currentlist);
     38          void show_active_musiclist(unsigned int active_one)
     39          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  FEFF              DEFW    65534
     40              BYTE buf_num = active_one% OneSectorListNum;   
   \   0005  010700            LD      BC,7
   \   0008  DD5E02            LD      E,(IX+2)
   \   000B  DD5603            LD      D,(IX+3)
   \   000E  CD0000            CALL    LWRD ?US_MOD_L02
   \   0011  DD73FF            LD      (IX-1),E
     41              BYTE pos_num = active_one% ListDisplayNum;   
   \   0014  0B                DEC     BC
   \   0015  DD5E02            LD      E,(IX+2)
   \   0018  DD5603            LD      D,(IX+3)
   \   001B  CD0000            CALL    LWRD ?US_MOD_L02
   \   001E  DD73FE            LD      (IX-2),E
     42              if(LastSeekNum!= ActiveSeekNum)     //当前选中列表文件数据不在buffer中
   \   0021  2A3B02            LD      HL,(ActiveSeekNum)
   \   0024  ED4B3D02          LD      BC,(LastSeekNum)
   \   0028  A7                AND     A
   \   0029  ED42              SBC     HL,BC
   \   002B  2809              JR      Z,?0003
   \   002D            ?0002:
     43                ReadOneSectorData(active_one);
   \   002D  DD5E02            LD      E,(IX+2)
   \   0030  DD5603            LD      D,(IX+3)
   \   0033  CD0601            CALL    LWRD ?0078
   \   0036            ?0003:
     44              memcpy(&active_location,&ReadListBuffer[buf_num*ListPerByte+30],OneLocationBYTE); //将当前active的路径保存起来    
   \   0036  012900            LD      BC,41
   \   0039  211E00            LD      HL,ReadListBuffer+30
   \   003C  DD4EFF            LD      C,(IX-1)
   \   003F  114700            LD      DE,71
   \   0042  CD0000            CALL    LWRD ?S_MUL_L02
   \   0045  19                ADD     HL,DE
   \   0046  110002            LD      DE,active_location
   \   0049  0E29              LD      C,41
   \   004B  EDB0              LDIR
     45              ResShowPic(MFILE, explorer_pic_x_def, menu_pos_list[pos_num]-1);
   \   004D  DD4EFE            LD      C,(IX-2)
   \   0050  210000            LD      HL,menu_pos_list
   \   0053  09                ADD     HL,BC
   \   0054  7E                LD      A,(HL)
   \   0055  C6FF              ADD     A,255
   \   0057  4F                LD      C,A
   \   0058  C5                PUSH    BC
   \   0059  CD5001            CALL    LWRD ?0087
   \   005C  F1                POP     AF
     46              ResShowPic(FILEBCK, explorer_str_x_def-2, menu_pos_list[pos_num]-4);
   \   005D  DD4EFE            LD      C,(IX-2)
   \   0060  0600              LD      B,0
   \   0062  210000            LD      HL,menu_pos_list
   \   0065  09                ADD     HL,BC
   \   0066  7E                LD      A,(HL)
   \   0067  C6FC              ADD     A,252
   \   0069  4F                LD      C,A
   \   006A  C5                PUSH    BC
   \   006B  0E1E              LD      C,30
   \   006D  112C00            LD      DE,44
   \   0070  CD5501            CALL    LWRD ?0088
   \   0073  F1                POP     AF
     47              ResShowPic(DHTHK,194,menu_pos_list[pos_num]+6); 
   \   0074  DD4EFE            LD      C,(IX-2)
   \   0077  0600              LD      B,0
   \   0079  210000            LD      HL,menu_pos_list
   \   007C  09                ADD     HL,BC
   \   007D  7E                LD      A,(HL)
   \   007E  C606              ADD     A,6
   \   0080  4F                LD      C,A
   \   0081  C5                PUSH    BC
   \   0082  0EC2              LD      C,194
   \   0084  112700            LD      DE,39
   \   0087  CD5501            CALL    LWRD ?0088
   \   008A  F1                POP     AF
     48              if(ReadListBuffer[buf_num*ListPerByte]!=0)
   \   008B  DD4EFF            LD      C,(IX-1)
   \   008E  CD4101            CALL    LWRD ?0085
   \   0091  2846              JR      Z,?0005
   \   0093            ?0004:
     49              {                         
     50                   memcpy(scroll_buf,&ReadListBuffer[buf_num*ListPerByte],30);        //取要滚动的数据到buf   
   \   0093  114700            LD      DE,71
   \   0096  CD0000            CALL    LWRD ?S_MUL_L02
   \   0099  210000            LD      HL,ReadListBuffer
   \   009C  19                ADD     HL,DE
   \   009D  110000            LD      DE,scroll_buf
   \   00A0  0E1E              LD      C,30
   \   00A2  EDB0              LDIR
     51                   region_scroll.y = menu_pos_list[pos_num]-2;                 //滚动纵坐标的位置             
   \   00A4  DD4EFE            LD      C,(IX-2)
   \   00A7  210000            LD      HL,menu_pos_list
   \   00AA  09                ADD     HL,BC
   \   00AB  7E                LD      A,(HL)
   \   00AC  C6FE              ADD     A,254
   \   00AE  320100            LD      (region_scroll+1),A
     52                   ScrollString(scroll_buf, TRUE,g_comval.langid,&region_scroll);   //滚动第一屏  
   \   00B1  210000            LD      HL,region_scroll
   \   00B4  E5                PUSH    HL
   \   00B5  210C00            LD      HL,g_comval+12
   \   00B8  4E                LD      C,(HL)
   \   00B9  C5                PUSH    BC
   \   00BA  0E01              LD      C,1
   \   00BC  CD5D01            CALL    LWRD ?0089
   \   00BF  E1                POP     HL
   \   00C0  E1                POP     HL
     53                   if(strlen(scroll_buf)<20)
   \   00C1  210000            LD      HL,scroll_buf
   \   00C4  CD0000            CALL    LWRD ?STRLEN_L11
   \   00C7  011400            LD      BC,20
   \   00CA  A7                AND     A
   \   00CB  ED42              SBC     HL,BC
   \   00CD  3003              JR      NC,?0007
   \   00CF            ?0006:
     54                   ScrollFlag=0;
   \   00CF  AF                XOR     A
   \   00D0  1802              JR      ?0070
     55                   else
   \   00D2            ?0007:
     56                   ScrollFlag=1;
   \   00D2  3E01              LD      A,1
   \   00D4            ?0070:
   \   00D4  320000            LD      (ScrollFlag),A
   \   00D7            ?0008:
     57              }
     58            
     59             else
   \   00D7  181C              JR      ?0009
   \   00D9            ?0005:
     60              {
     61                  ScrollFlag = 0;
   \   00D9  320000            LD      (ScrollFlag),A
     62                  memcpy(BlankInfor,BLANKSTRING,4);
   \   00DC  0E04              LD      C,4
   \   00DE  112B02            LD      DE,BlankInfor
   \   00E1  210000            LD      HL,BLANKSTRING
   \   00E4  EDB0              LDIR
     63                  memcpy(&BlankInfor[4],&ReadListBuffer[buf_num*ListPerByte+56],12);  //取短名    
   \   00E6  213800            LD      HL,ReadListBuffer+56
   \   00E9  DD4EFF            LD      C,(IX-1)
   \   00EC  CD3201            CALL    LWRD ?0083
     64                  SetTextPos(explorer_str_x_def, menu_pos_list[pos_num]-2); 
   \   00EF  DD4EFE            LD      C,(IX-2)
   \   00F2  CD6801            CALL    LWRD ?0090
     65                  PutS(BlankInfor,-1);    
   \   00F5            ?0009:
     66              }   
     67          }
   \   00F5  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   00F8            ?0081:
   \   00F8  0B                DEC     BC
   \   00F9            ?0080:
   \   00F9  FDE5              PUSH    IY
   \   00FB  D1                POP     DE
   \   00FC  CD0000            CALL    LWRD ?US_DIV_L02
   \   00FF  EB                EX      DE,HL
   \   0100  29                ADD     HL,HL
   \   0101  4D                LD      C,L
   \   0102  44                LD      B,H
   \   0103  29                ADD     HL,HL
   \   0104            ?0079:
   \   0104  09                ADD     HL,BC
   \   0105  EB                EX      DE,HL
   \   0106            ?0078:
   \   0106  3E00              LD      A,BYTE3 ReadOneSectorData
   \   0108  214705            LD      HL,LWRD ReadOneSectorData
   \   010B  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   010E            ?0082:
   \   010E  DD5EFE            LD      E,(IX-2)
   \   0111  50                LD      D,B
   \   0112  0E47              LD      C,71

⌨️ 快捷键说明

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