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

📄 ap_common2.lst

📁 action mp3 devo,eki e,eikf, kdife l
💻 LST
📖 第 1 页 / 共 2 页
字号:
    132          
    133                  //显示 
    134                  SetAsciiFont(FONT_TYPE_LARGE);
   \   00B2  1E04              LD      E,4
   \   00B4  CD0000            CALL    LWRD SetAsciiFont
    135                  if(x == 255)    //居中显示
   \   00B7  DD46FE            LD      B,(IX-2)
   \   00BA  04                INC     B
   \   00BB  DD4E06            LD      C,(IX+6)
   \   00BE  200C              JR      NZ,?0018
   \   00C0            ?0017:
    136                  {
    137                          SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(buf)) /2, y);
   \   00C0  C5                PUSH    BC
   \   00C1  210200            LD      HL,2
   \   00C4  39                ADD     HL,SP
   \   00C5  EB                EX      DE,HL
   \   00C6  CD0001            CALL    LWRD ?0045
   \   00C9  C1                POP     BC
   \   00CA  1803              JR      ?0040
    138                          PutS(buf, -1);
    139                  }
    140                  else
   \   00CC            ?0018:
    141                  {
    142                          SetTextPos(x, y);
   \   00CC  DD5EFE            LD      E,(IX-2)
   \   00CF            ?0040:
   \   00CF  CD0000            CALL    LWRD SetTextPos
    143                          PutS(buf, -1);
   \   00D2  0EFF              LD      C,255
   \   00D4  210000            LD      HL,0
   \   00D7  39                ADD     HL,SP
   \   00D8  EB                EX      DE,HL
   \   00D9  CD0000            CALL    LWRD PutS
   \   00DC            ?0019:
    144                  }
    145                  SetAsciiFont(FONT_TYPE_DEFAULT);        
   \   00DC  1E00              LD      E,0
   \   00DE  CD0000            CALL    LWRD SetAsciiFont
    146                  if(ui_auto_update) UpdateScreen(NULL); //MSG
   \   00E1  3A0000            LD      A,(ui_auto_update)
   \   00E4  B7                OR      A
   \   00E5  2806              JR      Z,?0021
   \   00E7            ?0020:
   \   00E7  110000            LD      DE,0
   \   00EA  CD0000            CALL    LWRD UpdateScreen
   \   00ED            ?0021:
    147                          
    148                  //释放内存
    149                  //if(buf != NULL) BufFree((int *)buf);
    150                  return 1;        
   \   00ED  210100            LD      HL,1
    151          }
   \   00F0            ?0022:
   \   00F0  DDF9              LD      SP,IX
   \   00F2  DDE1              POP     IX
   \   00F4  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00F7            ?0044:
   \   00F7  0E00              LD      C,0
   \   00F9  ED5B0000          LD      DE,(res_fp)
   \   00FD  C30000            JP      LWRD SD_FSeek
   \   0100            ?0045:
   \   0100  3E00              LD      A,BYTE3 get_large_text_width
   \   0102  214000            LD      HL,LWRD get_large_text_width
   \   0105  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0108  5D                LD      E,L
   \   0109  50                LD      D,B
   \   010A  218000            LD      HL,128
   \   010D  A7                AND     A
   \   010E  ED52              SBC     HL,DE
   \   0110  EB                EX      DE,HL
   \   0111  0E02              LD      C,2
   \   0113  C30000            JP      LWRD ?SS_DIV_L02
   \   0116            ResShowMultiString:
    152          
    153          /*
    154          ********************************************************************************
    155          * Description : 在指定位置显示多语言字符串
    156          *
    157          * Arguments   : id, 资源代号
    158                          string_id, 语言代号
    159                          x, y, 屏幕坐标,x=255 表示x方向居中
    160          *
    161          * Returns     : 成功, 1
    162                          失败, 0
    163          *
    164          * Notes       : 
    165          *
    166          ********************************************************************************
    167          */
    168          int ResShowMultiString(WORD id, BYTE string_id, uchar x, uchar y)
    169          {
   \   0116  DDE5              PUSH    IX
   \   0118  C5                PUSH    BC
   \   0119  D5                PUSH    DE
   \   011A  219CFF            LD      HL,65436
   \   011D  39                ADD     HL,SP
   \   011E  F9                LD      SP,HL
    170                  //需要动态申请 string 的空间
    171          //      char *buf = NULL;
    172                  char *p;
    173                  char buf[100];
    174          
    175                  ASSERT(id <= UIID_MAX);
    176          
    177                  //读entry
    178                  SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t));
   \   011F  6B                LD      L,E
   \   0120  62                LD      H,D
   \   0121  010000            LD      BC,0
   \   0124  3E04              LD      A,4
   \   0126  CD0000            CALL    LWRD ?L_LSH_L03
   \   0129  C5                PUSH    BC
   \   012A  E5                PUSH    HL
   \   012B  CDF700            CALL    LWRD ?0044
   \   012E  E1                POP     HL
   \   012F  E1                POP     HL
    179                  SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));
   \   0130  211000            LD      HL,16
   \   0133  E5                PUSH    HL
   \   0134  010000            LD      BC,res_entry
   \   0137  ED5B0000          LD      DE,(res_fp)
   \   013B  CD0000            CALL    LWRD SD_FRead
   \   013E  F1                POP     AF
    180                  if( res_entry.type != RES_TYPE_MSTRING) return 0;
   \   013F  3A0600            LD      A,(res_entry+6)
   \   0142  FE03              CP      3
   \   0144  2805              JR      Z,?0024
   \   0146            ?0023:
   \   0146  210000            LD      HL,0
    181          
    182                  //realloc buf = res_entry.length
    183                  //buf = (char *)BufAlloc(res_entry.length);
    184                  //ASSERT(buf != NULL);
    185                  ASSERT(res_entry.length <= sizeof(buf));
   \   0149  1878              JR      ?0035
   \   014B            ?0024:
    186                  
    187                  //读数据
    188                  SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   014B  2A0200            LD      HL,(res_entry+2)
   \   014E  E5                PUSH    HL
   \   014F  2A0000            LD      HL,(res_entry)
   \   0152  E5                PUSH    HL
   \   0153  CDF700            CALL    LWRD ?0044
   \   0156  E1                POP     HL
   \   0157  E1                POP     HL
    189                  SD_FRead(res_fp, buf, res_entry.length);
   \   0158  210400            LD      HL,res_entry+4
   \   015B  4E                LD      C,(HL)
   \   015C  23                INC     HL
   \   015D  46                LD      B,(HL)
   \   015E  C5                PUSH    BC
   \   015F  210200            LD      HL,2
   \   0162  39                ADD     HL,SP
   \   0163  4D                LD      C,L
   \   0164  44                LD      B,H
   \   0165  ED5B0000          LD      DE,(res_fp)
   \   0169  CD0000            CALL    LWRD SD_FRead
   \   016C  F1                POP     AF
    190          
    191                  //定位到 string_id
    192                  p = buf;
   \   016D  210000            LD      HL,0
   \   0170  39                ADD     HL,SP
   \   0171  E5                PUSH    HL
   \   0172  DDE1              POP     IX
   \   0174            ?0026:
    193                  while( string_id)
   \   0174  216600            LD      HL,102
   \   0177  39                ADD     HL,SP
   \   0178  AF                XOR     A
   \   0179  B6                OR      (HL)
   \   017A  280B              JR      Z,?0025
   \   017C            ?0027:
    194                  {
    195                          if(*p == 0) string_id--;    //找到第string_id 个0
   \   017C  AF                XOR     A
   \   017D  DDB600            OR      (IX+0)
   \   0180  2001              JR      NZ,?0029
   \   0182            ?0028:
   \   0182  35                DEC     (HL)
   \   0183            ?0029:
    196                          p++;
    197                  }
    198                  ASSERT((WORD)(p - buf) <= res_entry.length);
   \   0183  DD23              INC     IX
   \   0185  18ED              JR      ?0026
   \   0187            ?0025:
    199                          
    200                  //复制到 buf, 这里从buf尾部复制到头部, 存在不安全因素
    201                  //strcpy(buf, p);
    202              
    203                  SetAsciiFont(FONT_TYPE_LARGE);
   \   0187  1E04              LD      E,4
   \   0189  CD0000            CALL    LWRD SetAsciiFont
    204                  if(x == 255)    //居中显示
   \   018C  216E00            LD      HL,110
   \   018F  39                ADD     HL,SP
   \   0190  46                LD      B,(HL)
   \   0191  04                INC     B
   \   0192  23                INC     HL
   \   0193  23                INC     HL
   \   0194  4E                LD      C,(HL)
   \   0195  200A              JR      NZ,?0031
   \   0197            ?0030:
    205                  {
    206                          SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
   \   0197  C5                PUSH    BC
   \   0198  DDE5              PUSH    IX
   \   019A  D1                POP     DE
   \   019B  CD0001            CALL    LWRD ?0045
   \   019E  C1                POP     BC
   \   019F  1803              JR      ?0043
    207                          PutS(p, -1);
    208                  }
    209                  else
   \   01A1            ?0031:
    210                  {
    211                          SetTextPos(x, y);
   \   01A1  2B                DEC     HL
   \   01A2  2B                DEC     HL
   \   01A3  5E                LD      E,(HL)
   \   01A4            ?0043:
   \   01A4  CD0000            CALL    LWRD SetTextPos
    212                          PutS(p, -1);
   \   01A7  0EFF              LD      C,255
   \   01A9  DDE5              PUSH    IX
   \   01AB  D1                POP     DE
   \   01AC  CD0000            CALL    LWRD PutS
   \   01AF            ?0032:
    213                  }
    214                  
    215                  SetAsciiFont(FONT_TYPE_DEFAULT);        
   \   01AF  1E00              LD      E,0
   \   01B1  CD0000            CALL    LWRD SetAsciiFont
    216                  if(ui_auto_update) UpdateScreen(NULL);
   \   01B4  3A0000            LD      A,(ui_auto_update)
   \   01B7  B7                OR      A
   \   01B8  2806              JR      Z,?0034
   \   01BA            ?0033:
   \   01BA  110000            LD      DE,0
   \   01BD  CD0000            CALL    LWRD UpdateScreen
   \   01C0            ?0034:
    217              
    218                  //释放内存
    219                  //if(buf != NULL) BufFree((int *)buf);
    220                  return 1;
   \   01C0  210100            LD      HL,1
    221          }
   \   01C3            ?0035:
   \   01C3  EB                EX      DE,HL
   \   01C4  216800            LD      HL,104
   \   01C7  39                ADD     HL,SP
   \   01C8  F9                LD      SP,HL
   \   01C9  EB                EX      DE,HL
   \   01CA  DDE1              POP     IX
   \   01CC  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    222          
    223          
   \   0000                    RSEG    CONST
   \   0000            music_ext:
   \   0000  4D5033            DEFB    'MP3'
   \   0003  00                DEFB    0
   \   0004  574D41            DEFB    'WMA'
   \   0007  00                DEFB    0
   \   0008  415346            DEFB    'ASF'
   \   000B  00                DEFB    0
   \   000C  574D56            DEFB    'WMV'
   \   000F  00                DEFB    0
   \   0010  4F4747            DEFB    'OGG'
   \   0013  00                DEFB    0
   \   0014            voice_ext:
   \   0014  574156            DEFB    'WAV'
   \   0017  00                DEFB    0
   \   0018  414354            DEFB    'ACT'
   \   001B  00                DEFB    0
   \   001C                    END

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

⌨️ 快捷键说明

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