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

📄 ui_playlist.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:32 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_playlist.c              #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ui_playlist.lst     #
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ui_playlist.r01      #
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ui_playlist.s01     #
#       Command line  =  -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w  #
#                        -gA -z9 -RCODE -r0 -DNAPDEBUG                       #
#                        -LD:\case_i_d90f\ap\ap_music\List\ -q -t8           #
#                        -AD:\case_i_d90f\ap\ap_music\List\                  #
#                        -ND:\case_i_d90f\ap\ap_music\List\ -X               #
#                        -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\           #
#                        d:\case_i_d90f\AP\COMMON\ui_playlist.c              #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_playlist(17)
   \   0000                    RSEG    COM_PLAYLIST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    EXTERN  PlaylistClassTotal
   \   0000                    EXTERN  PlaylistCurClass
   \   0000                    EXTERN  ScrollFlag
   \   0000                    EXTERN  SetSWAPAddress
   \   0000                    EXTERN  ShowPlaylist
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    PUBLIC  cur_grouplist
   \   0000                    EXTERN  fselGetLocation
   \   0000                    EXTERN  fselGetNextGroup
   \   0000                    EXTERN  fselGetPrevGroup
   \   0000                    EXTERN  fselSetLocation
   \   0000                    PUBLIC  playlist_active
   \   0000                    EXTERN  reinit_idm_buf_playlist
   \   0000                    PUBLIC  ui_playlist
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?US_DIV_L02
   \   0000                    EXTERN  ?C_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?ENT_PARM_DIRECT_L09
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    EXTERN  ?LEAVE_DIRECT_L09
   \   0000                    EXTERN  ?MEMSET_L11
   \   0000                    RSEG    COM_PLAYLIST
   \   0000            ui_playlist:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        ap common lib, directory control file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: ui_playlist.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */
     12          #pragma codeseg(COM_PLAYLIST)
     13          
     14          #include "ap_common.h"
     15          #include "list.h"
     16          #include "filesys.h"
     17          
     18          WORD   playlist_active,cur_grouplist;    //目录总数,文件总数和浏览项数,浏览活动项
     19          extern  WORD    PlaylistClassTotal;
     20          extern  WORD    PlaylistCurClass;
     21          extern BYTE ScrollFlag;
     22          
     23          #pragma memory=dataseg(RCODE)
     24          #pragma memory=default
     25          void ShowPlaylist(BYTE top,BYTE bottom,BYTE Old_active,BYTE active,char *Longnamebuf,BYTE string_id,BYTE ScrollMode);
     26          void reinit_idm_buf_playlist(int top, int bottom, char *Longnamebuf, BYTE string_id,BOOL direction);
     27          
     28          static void DmaCpy(WORD descadd, BYTE descpg, WORD srcadd, BYTE srcpg, WORD Length);
     29          
     30          /********************************************************************************
     31          * Description : select the directory.
     32          *
     33          * Arguments  :
     34          *            location: get thedisk type
     35          *            type : show file kind
     36          *            string_id: language type
     37          * Returns     :
     38          *            other:    Successful
     39          *            0:    Fail, detail information in fselError
     40          * Notes       :  only select the valid directory
     41          *
     42          ********************************************************************************/
     43          
     44          int ui_playlist(file_location_t *location, BYTE type,BYTE string_id)
     45          {
   \   0000  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0003  F6FF              DEFW    -10
   \   0005  FDE5              PUSH    IY
     46              BYTE i, pagebak,TimeoutCnt;
     47              char * Strname;
     48              BYTE  result;        
     49              char key;
     50              int top, bottom;  
     51          
     52              if ( !fselSetLocation(location) )
   \   0007  CD0E03            CALL    LWRD ?0072
   \   000A  2C                INC     L
   \   000B  2D                DEC     L
   \   000C  2807              JR      Z,?0070
   \   000E            ?0002:
     53              {
     54                  return RESULT_IGNORE;
     55              }
   \   000E            ?0003:
     56          
     57              if (PlaylistClassTotal == 0)
   \   000E  2A0000            LD      HL,(PlaylistClassTotal)
   \   0011  7D                LD      A,L
   \   0012  B4                OR      H
   \   0013  2006              JR      NZ,?0005
   \   0015            ?0004:
     58                  return RESULT_IGNORE;
   \   0015            ?0070:
   \   0015  213400            LD      HL,52
   \   0018  C3FB02            JP      LWRD ?0064
   \   001B            ?0005:
     59          
     60          ////////////////////////////////换页//////////////////////////////////////
     61              DmaCpy( 0x4000, 0x06, 0x4000, 0x07, 0x2000-1 );     //备份第7页0x4000~0x6000的8K代码到第6页0x4000~0x6000
   \   001B  21FF1F            LD      HL,8191
   \   001E  E5                PUSH    HL
   \   001F  0E07              LD      C,7
   \   0021  C5                PUSH    BC
   \   0022  210040            LD      HL,16384
   \   0025  E5                PUSH    HL
   \   0026  0E06              LD      C,6
   \   0028  EB                EX      DE,HL
   \   0029  CD7303            CALL    LWRD DmaCpy
   \   002C  E1                POP     HL
   \   002D  E1                POP     HL
   \   002E  E1                POP     HL
     62              i = input8(0x05);
   \   002F  DB05              IN      A,(5)
   \   0031  DD77FE            LD      (IX-2),A
     63              output8(0x05, 0xf6);
   \   0034  3EF6              LD      A,246
   \   0036  D305              OUT     (5),A
     64              pagebak = SetSWAPAddress(0x06);
   \   0038  1E06              LD      E,6
   \   003A  CD0000            CALL    LWRD SetSWAPAddress
   \   003D  DD77FD            LD      (IX-3),A
     65              Strname = (char *)STRNAMEBUF;
   \   0040  DD36F800          LD      (IX-8),0
   \   0044  DD36F970          LD      (IX-7),112
     66          ////////////////////////////////换页//////////////////////////////////////
     67          
     68              memset(Strname, 0x00, LISTNAME_DISP_LENNGTH+1);
   \   0048  010102            LD      BC,513
   \   004B  110070            LD      DE,28672
   \   004E  6B                LD      L,E
   \   004F  CD0000            CALL    LWRD ?MEMSET_L11
   \   0052            ?0007:
     69              while(PlaylistCurClass>1)       //返回根目录
   \   0052  ED4B0000          LD      BC,(PlaylistCurClass)
   \   0056  210100            LD      HL,1
   \   0059  A7                AND     A
   \   005A  ED42              SBC     HL,BC
   \   005C  3010              JR      NC,?0006
   \   005E            ?0008:
     70              {
     71               fselGetPrevGroup(Strname); 
   \   005E  DD5EF8            LD      E,(IX-8)
   \   0061  DD56F9            LD      D,(IX-7)
   \   0064  3E00              LD      A,BYTE3 fselGetPrevGroup
   \   0066  210000            LD      HL,LWRD fselGetPrevGroup
   \   0069  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   006C  18E4              JR      ?0007
   \   006E            ?0006:
     72              }   
     73              top=0;
     74              bottom=4;
     75              playlist_active=0;
   \   006E  210000            LD      HL,0
   \   0071  220000            LD      (playlist_active),HL
     76              cur_grouplist=0;
   \   0074  220200            LD      (cur_grouplist),HL
     77              if(PlaylistClassTotal<5)
   \   0077  AF                XOR     A
   \   0078  DD77F6            LD      (IX-10),A
   \   007B  DD77F7            LD      (IX-9),A
   \   007E  FD210400          LD      IY,4
   \   0082  010500            LD      BC,5
   \   0085  2A0000            LD      HL,(PlaylistClassTotal)
   \   0088  ED42              SBC     HL,BC
   \   008A  300B              JR      NC,?0010
   \   008C            ?0009:
     78                 bottom=PlaylistClassTotal-1;
   \   008C  21FFFF            LD      HL,65535
   \   008F  ED4B0000          LD      BC,(PlaylistClassTotal)
   \   0093  09                ADD     HL,BC
   \   0094  E5                PUSH    HL
   \   0095  FDE1              POP     IY
   \   0097            ?0010:
     79              FSELGetLocation(location);          //保存location
   \   0097  CD0003            CALL    LWRD ?0071
     80              reinit_idm_buf_playlist(top, bottom, Strname, string_id,TRUE);
   \   009A  0E01              LD      C,1
   \   009C  C5                PUSH    BC
   \   009D  DD6E0A            LD      L,(IX+10)
   \   00A0  E5                PUSH    HL
   \   00A1  DD6EF8            LD      L,(IX-8)
   \   00A4  DD66F9            LD      H,(IX-7)
   \   00A7  E5                PUSH    HL
   \   00A8  CD1C03            CALL    LWRD ?0073
   \   00AB  E1                POP     HL
   \   00AC  E1                POP     HL
   \   00AD  E1                POP     HL
     81              FSELSetLocation(location);
   \   00AE  CD0E03            CALL    LWRD ?0072
     82              ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,1);
   \   00B1  0E01              LD      C,1
   \   00B3  C5                PUSH    BC
   \   00B4  DD6E0A            LD      L,(IX+10)
   \   00B7  E5                PUSH    HL
   \   00B8  DD6EF8            LD      L,(IX-8)
   \   00BB  DD66F9            LD      H,(IX-7)
   \   00BE  E5                PUSH    HL
   \   00BF  3A0000            LD      A,(playlist_active)
   \   00C2  4F                LD      C,A
   \   00C3  C5                PUSH    BC
   \   00C4  4F                LD      C,A
   \   00C5  C5                PUSH    BC
   \   00C6  CD2D03            CALL    LWRD ?0074
   \   00C9  E1                POP     HL
   \   00CA  E1                POP     HL
   \   00CB  E1                POP     HL
   \   00CC  E1                POP     HL
   \   00CD  E1                POP     HL
   \   00CE            ?0012:
     83              while(ap_get_message()!=0) {;}      //丢掉多余按键
   \   00CE  CD0000            CALL    LWRD ap_get_message
   \   00D1  B7                OR      A
   \   00D2  20FA              JR      NZ,?0012
   \   00D4            ?0013:
   \   00D4            ?0011:
     84          
     85              ap_message_init(NULL);
   \   00D4  5F                LD      E,A
   \   00D5  57                LD      D,A
   \   00D6  3E00              LD      A,BYTE3 ap_message_init
   \   00D8  210000            LD      HL,LWRD ap_message_init
   \   00DB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00DE            ?0015:
     86              while(1)
     87              {
     88                  //handle msg
     89                  key = ap_get_message();
   \   00DE  CD0000            CALL    LWRD ap_get_message
     90                  switch(key)
   \   00E1  5F                LD      E,A
   \   00E2  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   00E5  0B00              DEFW    11
   \   00E7  05                DEFB    5
   \   00E8  06                DEFB    6
   \   00E9  1C                DEFB    28
   \   00EA  1E                DEFB    30
   \   00EB  21                DEFB    33
   \   00EC  30                DEFB    48
   \   00ED  37                DEFB    55
   \   00EE  38                DEFB    56
   \   00EF  45                DEFB    69
   \   00F0  46                DEFB    70
   \   00F1  90                DEFB    144
   \   00F2  7702              DEFW    ?0056
   \   00F4  2F02              DEFW    ?0040
   \   00F6  0A01              DEFW    ?0018
   \   00F8  AC01              DEFW    ?0029

⌨️ 快捷键说明

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