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

📄 ui_playlist3.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
     96          */
     97          void HoriScroll_PlayList(signed char step,char language,region_t *scroll)
     98          {
   \   00F7  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   00FA  F0FF              DEFW    65520
   \   00FC  FDE5              PUSH    IY
   \   00FE  DD6E0A            LD      L,(IX+10)
   \   0101  DD660B            LD      H,(IX+11)
   \   0104  E5                PUSH    HL
   \   0105  FDE1              POP     IY
     99              int code;
    100              char *tmpstrpt;
    101              region_t tregion;
    102              region_t sregion;
    103              region_t kregion;//余下部分区域
    104          
    105              tmpstrpt = str_pt;
   \   0107  2A0000            LD      HL,(str_pt)
   \   010A  DD75F0            LD      (IX-16),L
   \   010D  DD74F1            LD      (IX-15),H
    106          
    107              //余下部分区域
    108              kregion.x = scroll->x+scroll->width-step;
   \   0110  FD7E02            LD      A,(IY+2)
   \   0113  FD8600            ADD     A,(IY+0)
   \   0116  DD9602            SUB     (IX+2)
   \   0119  DD77F2            LD      (IX-14),A
    109              kregion.y = scroll->y;
   \   011C  FD4601            LD      B,(IY+1)
   \   011F  DD70F3            LD      (IX-13),B
    110              kregion.width = step;
   \   0122  DD4602            LD      B,(IX+2)
   \   0125  DD70F4            LD      (IX-12),B
    111              kregion.height = scroll->height;
   \   0128  FD4603            LD      B,(IY+3)
   \   012B  DD70F5            LD      (IX-11),B
    112          
    113              //设定移动的源,目标区域
    114              sregion.x =  scroll->x+step;//暂时未考虑为负数的情况
   \   012E  FD7E00            LD      A,(IY+0)
   \   0131  DD8602            ADD     A,(IX+2)
   \   0134  DD77F6            LD      (IX-10),A
    115              tregion.x =  scroll->x;
   \   0137  FD4600            LD      B,(IY+0)
   \   013A  DD70FA            LD      (IX-6),B
    116              tregion.y = sregion.y =  scroll->y;
   \   013D  FD4601            LD      B,(IY+1)
   \   0140  DD70F7            LD      (IX-9),B
   \   0143  DD70FB            LD      (IX-5),B
    117              sregion.width =  scroll->width-step;
   \   0146  FD7E02            LD      A,(IY+2)
   \   0149  DD9602            SUB     (IX+2)
   \   014C  DD77F8            LD      (IX-8),A
    118              sregion.height = scroll->height;
   \   014F  FD4603            LD      B,(IY+3)
   \   0152  DD70F9            LD      (IX-7),B
    119          
    120              //向左移step列
    121              RegionCopy(&sregion, &tregion);
   \   0155  210C00            LD      HL,12
   \   0158  39                ADD     HL,SP
   \   0159  4D                LD      C,L
   \   015A  44                LD      B,H
   \   015B  210800            LD      HL,8
   \   015E  39                ADD     HL,SP
   \   015F  EB                EX      DE,HL
   \   0160  CD0000            CALL    LWRD RegionCopy
   \   0163            ?0016:
    122          
    123          
    124          
    125          test:
    126              if (*str_pt == '\0')
   \   0163  2A0000            LD      HL,(str_pt)
   \   0166  AF                XOR     A
   \   0167  B6                OR      (HL)
   \   0168  200C              JR      NZ,?0018
   \   016A            ?0017:
    127              {
    128                  tmpstrpt = str_pt = strhead_pt;
   \   016A  2A0000            LD      HL,(strhead_pt)
   \   016D  220000            LD      (str_pt),HL
   \   0170  DD75F0            LD      (IX-16),L
   \   0173  DD74F1            LD      (IX-15),H
   \   0176            ?0018:
    129              }
    130          
    131              //汉字和ASCII的不同处理
    132              if ((*str_pt >= FirstSectionCode)&&(language!=1))
   \   0176  7E                LD      A,(HL)
   \   0177  FEA1              CP      161
   \   0179  3819              JR      C,?0020
   \   017B  DD4604            LD      B,(IX+4)
   \   017E  05                DEC     B
   \   017F  2813              JR      Z,?0020
   \   0181            ?0022:
   \   0181            ?0021:
   \   0181            ?0019:
    133              {//汉字
    134                  code = *(int *)str_pt;
   \   0181  46                LD      B,(HL)
   \   0182  DD70FE            LD      (IX-2),B
   \   0185  23                INC     HL
   \   0186  66                LD      H,(HL)
   \   0187  DD74FF            LD      (IX-1),H
    135                  tmpstrpt++;
   \   018A  DD34F0            INC     (IX-16)
   \   018D  200E              JR      NZ,?0023
   \   018F  DD34F1            INC     (IX-15)
    136              }
    137              else
   \   0192  1809              JR      ?0023
   \   0194            ?0020:
    138              {//ASCII
    139                  code = *str_pt;
   \   0194  4E                LD      C,(HL)
   \   0195  DD71FE            LD      (IX-2),C
   \   0198  0600              LD      B,0
   \   019A  DD70FF            LD      (IX-1),B
   \   019D            ?0023:
    140              }
    141              tmpstrpt++;
   \   019D  DD34F0            INC     (IX-16)
   \   01A0  2003              JR      NZ,?0041
   \   01A2  DD34F1            INC     (IX-15)
   \   01A5            ?0041:
    142          
    143              if (!CharOutRect(code, *(str_pt+1), &kregion, scroll_cnt))
   \   01A5  3A0000            LD      A,(scroll_cnt)
   \   01A8  4F                LD      C,A
   \   01A9  C5                PUSH    BC
   \   01AA  210600            LD      HL,6
   \   01AD  39                ADD     HL,SP
   \   01AE  E5                PUSH    HL
   \   01AF  2A0000            LD      HL,(str_pt)
   \   01B2  23                INC     HL
   \   01B3  4E                LD      C,(HL)
   \   01B4  0600              LD      B,0
   \   01B6  DD5EFE            LD      E,(IX-2)
   \   01B9  DD56FF            LD      D,(IX-1)
   \   01BC  CD0000            CALL    LWRD CharOutRect
   \   01BF  E1                POP     HL
   \   01C0  E1                POP     HL
   \   01C1  B7                OR      A
   \   01C2  200E              JR      NZ,?0025
   \   01C4            ?0024:
    144              {
    145                  //strhead_pt = str_pt;
    146                  str_pt = tmpstrpt;
   \   01C4  DD6EF0            LD      L,(IX-16)
   \   01C7  DD66F1            LD      H,(IX-15)
   \   01CA  220000            LD      (str_pt),HL
    147                  scroll_cnt = 0;
   \   01CD  320000            LD      (scroll_cnt),A
    148                  goto test;
   \   01D0  1891              JR      ?0016
   \   01D2            ?0025:
    149              }
    150                  scroll_cnt += step;//未支持负数
   \   01D2  3A0000            LD      A,(scroll_cnt)
   \   01D5  DD8602            ADD     A,(IX+2)
   \   01D8  320000            LD      (scroll_cnt),A
    151          
    152          }
   \   01DB  FDE1              POP     IY
   \   01DD  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   01E0            Count_playlist:
    153          
    154          int Count_playlist(char *str,char language,region_t *scroll)   //统计字数
    155          {
   \   01E0  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   01E3  0000              DEFW    0
   \   01E5  FDE5              PUSH    IY
    156              int n=0;
    157              int m=0;
   \   01E7  110000            LD      DE,0
   \   01EA  FD210000          LD      IY,0
   \   01EE            ?0027:
    158              while(*str!=0)
   \   01EE  DD6E02            LD      L,(IX+2)
   \   01F1  DD6603            LD      H,(IX+3)
   \   01F4  AF                XOR     A
   \   01F5  B6                OR      (HL)
   \   01F6  2841              JR      Z,?0026
   \   01F8            ?0028:
    159              {
    160               if((*str >= FirstSectionCode)&&(language!=1))
   \   01F8  7E                LD      A,(HL)
   \   01F9  FEA1              CP      161
   \   01FB  3824              JR      C,?0030
   \   01FD  DD4604            LD      B,(IX+4)
   \   0200  05                DEC     B
   \   0201  281E              JR      Z,?0030
   \   0203            ?0032:
   \   0203            ?0031:
   \   0203            ?0029:
    161               {
    162                   if(m+16>scroll->width)break;
   \   0203  211000            LD      HL,16
   \   0206  CD3F02            CALL    LWRD ?0050
   \   0209  382E              JR      C,?0026
   \   020B            ?0033:
   \   020B            ?0034:
    163                   *str++;
   \   020B  DD3402            INC     (IX+2)
   \   020E  2003              JR      NZ,?0042
   \   0210  DD3403            INC     (IX+3)
   \   0213            ?0042:
    164                   *str++;
   \   0213  DD3402            INC     (IX+2)
   \   0216  2003              JR      NZ,?0043
   \   0218  DD3403            INC     (IX+3)
   \   021B            ?0043:
    165                   n++;
   \   021B  13                INC     DE
    166                   m=m+16;
   \   021C  011000            LD      BC,16
   \   021F  1814              JR      ?0045
    167               }
    168               else    //采用大字体8*16
   \   0221            ?0030:
    169               {
    170                  if(m+8>scroll->width)break;
   \   0221  210800            LD      HL,8
   \   0224  CD3F02            CALL    LWRD ?0050
   \   0227  3810              JR      C,?0026
   \   0229            ?0036:
   \   0229            ?0037:
    171                  *str++;
   \   0229  DD3402            INC     (IX+2)
   \   022C  2003              JR      NZ,?0044
   \   022E  DD3403            INC     (IX+3)
   \   0231            ?0044:
    172                   n++;
   \   0231  13                INC     DE
    173                   m=m+8;
   \   0232  010800            LD      BC,8
   \   0235            ?0045:
   \   0235  FD09              ADD     IY,BC
   \   0237            ?0035:
   \   0237  18B5              JR      ?0027
   \   0239            ?0026:
    174               }
    175              }
    176              return n;
   \   0239  EB                EX      DE,HL
    177          }
   \   023A  FDE1              POP     IY
   \   023C  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   023F            ?0050:
   \   023F  FDE5              PUSH    IY
   \   0241  C1                POP     BC
   \   0242  09                ADD     HL,BC
   \   0243  4D                LD      C,L
   \   0244  44                LD      B,H
   \   0245  DD6E0A            LD      L,(IX+10)
   \   0248  DD660B            LD      H,(IX+11)
   \   024B  23                INC     HL
   \   024C  23                INC     HL
   \   024D  6E                LD      L,(HL)
   \   024E  2600              LD      H,0
   \   0250  C30000            JP      LWRD ?SS_CMP_L02
    178          
   \   0253                    END

Errors: none
Warnings: none
Code size: 595
Constant size: 0
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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