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

📄 ui_playlist3.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:40 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_playlist3.c             #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ui_playlist3.lst    #
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ui_playlist3.r01     #
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ui_playlist3.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_playlist3.c             #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_playlist3(17)
   \   0000                    RSEG    PLAYLIST_FUN(0)
   \   0000                    EXTERN  CharOutRect
   \   0000                    PUBLIC  Count_playlist
   \   0000                    EXTERN  GetTextPos
   \   0000                    PUBLIC  HoriScroll_PlayList
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  RegionCopy
   \   0000                    PUBLIC  ScrollInit_PlayList
   \   0000                    PUBLIC  Scroll_PlayList
   \   0000                    EXTERN  SetTextPos
   \   0000                    EXTERN  scroll_cnt
   \   0000                    EXTERN  str_pt
   \   0000                    EXTERN  strhead_pt
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_CMP_L02
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_LEAVE_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?ENT_PARM_DIRECT_L09
   \   0000                    EXTERN  ?ENT_AUTO_DIRECT_L09
   \   0000                    RSEG    PLAYLIST_FUN
   \   0000            Scroll_PlayList:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *        wma player basal module implementation
      5          *
      6          *        (c) Copyright Actions Co,Ld.
      7          *
      8          *  $Id: ui_playlist3.c,v 1.2 2006/04/25 10:50:14 jmzhang Exp $
      9          *******************************************************************************
     10          */
     11          /*
     12          这个函数的作用是在汇编程序外包一层 C ,这样汇编在C中用BANK方式CALL
     13          */
     14          #pragma codeseg(PLAYLIST_FUN)
     15          #include "actos.h"
     16          #include "ap_common.h"
     17          
     18          extern char *str_pt;//字符串当前指针
     19          extern char *strhead_pt;//字串首址记录
     20          extern BYTE scroll_cnt;
     21          
     22          int Count_playlist(char *str,char language,region_t *scroll);   //统计字数
     23          void ScrollInit_PlayList(char *str,char language,region_t *scroll);
     24          void HoriScroll_PlayList(signed char step,char language,region_t *scroll);
     25          
     26          
     27          /* (字符串首址,是否初始化true为要初始化) */
     28          void Scroll_PlayList( char * scrollstr, bool mode ,char language,region_t *scroll)
     29          {
   \   0000  CD0000            CALL    LWRD ?ENT_PARM_DIRECT_L09
     30           
     31              if (mode)
   \   0003  0C                INC     C
   \   0004  0D                DEC     C
   \   0005  DD6E0C            LD      L,(IX+12)
   \   0008  DD660D            LD      H,(IX+13)
   \   000B  E5                PUSH    HL
   \   000C  DD4E0A            LD      C,(IX+10)
   \   000F  280A              JR      Z,?0003
   \   0011            ?0002:
     32              {
     33                  //初始化滚屏(第一次调用时先显示一串字符)
     34                  ScrollInit_PlayList(scrollstr,language,scroll);
   \   0011  3E00              LD      A,BYTE3 ScrollInit_PlayList
   \   0013  212900            LD      HL,LWRD ScrollInit_PlayList
   \   0016  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0019  180A              JR      ?0038
     35                  return;
     36              }
   \   001B            ?0003:
     37              HoriScroll_PlayList(1,language,scroll);
   \   001B  1E01              LD      E,1
   \   001D  3E00              LD      A,BYTE3 HoriScroll_PlayList
   \   001F  21DE00            LD      HL,LWRD HoriScroll_PlayList
   \   0022  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0025            ?0038:
   \   0025  E1                POP     HL
     38              
     39          }
   \   0026            ?0004:
   \   0026  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0029            ScrollInit_PlayList:
     40          
     41          void ScrollInit_PlayList(char *str,char language,region_t *scroll)
     42          {
   \   0029  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   002C  F6FF              DEFW    65526
   \   002E  FDE5              PUSH    IY
   \   0030  DD6E0A            LD      L,(IX+10)
   \   0033  DD660B            LD      H,(IX+11)
   \   0036  E5                PUSH    HL
   \   0037  FDE1              POP     IY
     43              int code;
     44              int count;
     45              bool result;
     46              region_t kregion;//余下部分区域
     47              scroll_cnt = 0;
   \   0039  AF                XOR     A
   \   003A  320000            LD      (scroll_cnt),A
     48           
     49              SetTextPos(scroll->x, scroll->y);
   \   003D  FD4E01            LD      C,(IY+1)
   \   0040  FD5E00            LD      E,(IY+0)
   \   0043  CD0000            CALL    LWRD SetTextPos
     50              strhead_pt = str_pt = str;
   \   0046  DD6E02            LD      L,(IX+2)
   \   0049  DD6603            LD      H,(IX+3)
   \   004C  220000            LD      (str_pt),HL
   \   004F  220000            LD      (strhead_pt),HL
     51              //tmpstr = str;
     52              count=Count_playlist(str_pt,language,scroll);
   \   0052  FDE5              PUSH    IY
   \   0054  DD4E04            LD      C,(IX+4)
   \   0057  EB                EX      DE,HL
   \   0058  3E00              LD      A,BYTE3 Count_playlist
   \   005A  21C001            LD      HL,LWRD Count_playlist
   \   005D  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0060  F1                POP     AF
     53              str_pt = PutS(str_pt, count);
   \   0061  4D                LD      C,L
   \   0062  ED5B0000          LD      DE,(str_pt)
   \   0066  CD0000            CALL    LWRD PutS
   \   0069  220000            LD      (str_pt),HL
     54           
     55           
     56          
     57                if(*str_pt!=0)
   \   006C  AF                XOR     A
   \   006D  B6                OR      (HL)
   \   006E  2863              JR      Z,?0006
   \   0070            ?0005:
     58                {
     59                  GetTextPos(&kregion.x, &kregion.y);
   \   0070  210200            LD      HL,2
   \   0073  39                ADD     HL,SP
   \   0074  010100            LD      BC,1
   \   0077  09                ADD     HL,BC
   \   0078  4D                LD      C,L
   \   0079  44                LD      B,H
   \   007A  2B                DEC     HL
   \   007B  EB                EX      DE,HL
   \   007C  CD0000            CALL    LWRD GetTextPos
     60          
     61                  kregion.width =scroll->x+scroll->width-kregion.x;
   \   007F  FD7E02            LD      A,(IY+2)
   \   0082  FD8600            ADD     A,(IY+0)
   \   0085  DD96F6            SUB     (IX-10)
   \   0088  DD77F8            LD      (IX-8),A
     62                  kregion.height = scroll->height;
   \   008B  FD4603            LD      B,(IY+3)
   \   008E  DD70F9            LD      (IX-7),B
     63                  //汉字和ASCII的不同处理
     64                  if ((*str_pt >= FirstSectionCode)&&(language!=1))
   \   0091  2A0000            LD      HL,(str_pt)
   \   0094  7E                LD      A,(HL)
   \   0095  FEA1              CP      161
   \   0097  3811              JR      C,?0008
   \   0099  DD4604            LD      B,(IX+4)
   \   009C  05                DEC     B
   \   009D  280B              JR      Z,?0008
   \   009F            ?0010:
   \   009F            ?0009:
   \   009F            ?0007:
     65                    {//汉字
     66                      code = *(int *)str_pt;
   \   009F  46                LD      B,(HL)
   \   00A0  DD70FA            LD      (IX-6),B
   \   00A3  23                INC     HL
   \   00A4  66                LD      H,(HL)
   \   00A5  DD74FB            LD      (IX-5),H
     67                    }
     68                  else
   \   00A8  1809              JR      ?0011
   \   00AA            ?0008:
     69                    {//ASCII
     70                       code = *str_pt;
   \   00AA  4E                LD      C,(HL)
   \   00AB  DD71FA            LD      (IX-6),C
   \   00AE  0600              LD      B,0
   \   00B0  DD70FB            LD      (IX-5),B
   \   00B3            ?0011:
     71                    }
     72          
     73          
     74                  //输出最后一个字
     75                  result = CharOutRect(code, &kregion, scroll_cnt);
   \   00B3  3A0000            LD      A,(scroll_cnt)
   \   00B6  4F                LD      C,A
   \   00B7  C5                PUSH    BC
   \   00B8  210400            LD      HL,4
   \   00BB  39                ADD     HL,SP
   \   00BC  4D                LD      C,L
   \   00BD  44                LD      B,H
   \   00BE  DD5EFA            LD      E,(IX-6)
   \   00C1  DD56FB            LD      D,(IX-5)
   \   00C4  CD0000            CALL    LWRD CharOutRect
   \   00C7  E1                POP     HL
     76                  if (!result)
   \   00C8  B7                OR      A
   \   00C9  280E              JR      Z,?0014
   \   00CB            ?0012:
     77                    {
     78                      return;
     79                    }
   \   00CB            ?0013:
     80                  //scroll_cnt = kregion.width-1;
     81              scroll_cnt = kregion.width;
   \   00CB  DD7EF8            LD      A,(IX-8)
   \   00CE  320000            LD      (scroll_cnt),A
     82          
     83              }
     84              else
   \   00D1  1806              JR      ?0014
   \   00D3            ?0006:
     85              {
     86                  str_pt = strhead_pt;
   \   00D3  2A0000            LD      HL,(strhead_pt)
   \   00D6  220000            LD      (str_pt),HL
     87                  return;
     88              }
   \   00D9            ?0014:
     89          
     90          }
   \   00D9            ?0015:
   \   00D9  FDE1              POP     IY
   \   00DB  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   00DE            HoriScroll_PlayList:
     91          
     92          //==========================================================
     93          /*
     94          滚动屏幕
     95          */
     96          void HoriScroll_PlayList(signed char step,char language,region_t *scroll)
     97          {
   \   00DE  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   00E1  F0FF              DEFW    65520
   \   00E3  FDE5              PUSH    IY

⌨️ 快捷键说明

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