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

📄 ap_common2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   0089  3E04              LD      A,4
   \   008B  CD0000            CALL    LWRD ?L_LSH_L03
   \   008E  C5                PUSH    BC
   \   008F  E5                PUSH    HL
   \   0090  0E00              LD      C,0
   \   0092  ED5B0000          LD      DE,(res_fp)
   \   0096  CD0000            CALL    LWRD SD_FSeek
   \   0099  E1                POP     HL
   \   009A  E1                POP     HL
    100              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));          //res_fp->&res_entry
   \   009B  211000            LD      HL,16
   \   009E  E5                PUSH    HL
   \   009F  010000            LD      BC,res_entry
   \   00A2  ED5B0000          LD      DE,(res_fp)
   \   00A6  CD0000            CALL    LWRD SD_FRead
   \   00A9  F1                POP     AF
    101              if( res_entry.type != RES_TYPE_MSTRING) return 0;           //非Multisring 返回
   \   00AA  3A0600            LD      A,(res_entry+6)
   \   00AD  FE03              CP      3
   \   00AF  2806              JR      Z,?0014
   \   00B1            ?0013:
   \   00B1  210000            LD      HL,0
    102          
    103              ASSERT(res_entry.length <= sizeof(buf));
   \   00B4  C39401            JP      LWRD ?0024
   \   00B7            ?0014:
    104          
    105              //读数据
    106              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00B7  2A0200            LD      HL,(res_entry+2)
   \   00BA  E5                PUSH    HL
   \   00BB  2A0000            LD      HL,(res_entry)
   \   00BE  E5                PUSH    HL
   \   00BF  0E00              LD      C,0
   \   00C1  ED5B0000          LD      DE,(res_fp)
   \   00C5  CD0000            CALL    LWRD SD_FSeek
   \   00C8  E1                POP     HL
   \   00C9  E1                POP     HL
    107              SD_FRead(res_fp, buf, 50);
   \   00CA  213200            LD      HL,50
   \   00CD  E5                PUSH    HL
   \   00CE  210600            LD      HL,6
   \   00D1  39                ADD     HL,SP
   \   00D2  4D                LD      C,L
   \   00D3  44                LD      B,H
   \   00D4  ED5B0000          LD      DE,(res_fp)
   \   00D8  CD0000            CALL    LWRD SD_FRead
   \   00DB  F1                POP     AF
    108          
    109              //定位到 string_id
    110              p = buf;
   \   00DC  210400            LD      HL,4
   \   00DF  39                ADD     HL,SP
   \   00E0  E5                PUSH    HL
   \   00E1  FDE1              POP     IY
    111              string_idtemp=string_id;
   \   00E3  DD46FE            LD      B,(IX-2)
   \   00E6  DD70C7            LD      (IX-57),B
   \   00E9            ?0016:
    112              while(string_id)
   \   00E9  AF                XOR     A
   \   00EA  DDB6FE            OR      (IX-2)
   \   00ED  284F              JR      Z,?0015
   \   00EF            ?0017:
    113              {
    114                  AddBuf=1;
   \   00EF  DD36C601          LD      (IX-58),1
   \   00F3            ?0019:
    115                  while(*p!=0)
   \   00F3  AF                XOR     A
   \   00F4  FDB600            OR      (IY+0)
   \   00F7  2807              JR      Z,?0018
   \   00F9            ?0020:
    116                  {
    117                      AddBuf++;    //找到第string_id 个0
   \   00F9  DD34C6            INC     (IX-58)
    118                      p++;
   \   00FC  FD23              INC     IY
   \   00FE  18F3              JR      ?0019
   \   0100            ?0018:
    119                  }
    120                  string_id--;
   \   0100  DD35FE            DEC     (IX-2)
    121                  res_entry.offset=res_entry.offset+AddBuf;
   \   0103  210000            LD      HL,res_entry
   \   0106  DD5EC6            LD      E,(IX-58)
   \   0109  010000            LD      BC,0
   \   010C  51                LD      D,C
   \   010D  CD0000            CALL    LWRD ?L_ADDASG_L03
    122                  SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   0110  2A0200            LD      HL,(res_entry+2)
   \   0113  E5                PUSH    HL
   \   0114  2A0000            LD      HL,(res_entry)
   \   0117  E5                PUSH    HL
   \   0118  0E00              LD      C,0
   \   011A  ED5B0000          LD      DE,(res_fp)
   \   011E  CD0000            CALL    LWRD SD_FSeek
   \   0121  E1                POP     HL
   \   0122  E1                POP     HL
    123                  SD_FRead(res_fp, buf, 50);
   \   0123  213200            LD      HL,50
   \   0126  E5                PUSH    HL
   \   0127  210600            LD      HL,6
   \   012A  39                ADD     HL,SP
   \   012B  4D                LD      C,L
   \   012C  44                LD      B,H
   \   012D  ED5B0000          LD      DE,(res_fp)
   \   0131  CD0000            CALL    LWRD SD_FRead
   \   0134  F1                POP     AF
    124                  p = buf;
   \   0135  210400            LD      HL,4
   \   0138  39                ADD     HL,SP
   \   0139  E5                PUSH    HL
   \   013A  FDE1              POP     IY
   \   013C  18AB              JR      ?0016
   \   013E            ?0015:
    125              }
    126              string_id=string_idtemp;
   \   013E  DD46C7            LD      B,(IX-57)
   \   0141  DD70FE            LD      (IX-2),B
    127              ASSERT((WORD)(p - buf) <= res_entry.length);
    128          
    129                  StrLength=(BYTE)strlen(p);
   \   0144  FDE5              PUSH    IY
   \   0146  E1                POP     HL
   \   0147  CD0000            CALL    LWRD ?STRLEN_L11
   \   014A  DD75C8            LD      (IX-56),L
    130                  /*
    131                  if((x == 255)&&(string_id!=1)&&(string_id<5))    //16*16字体居中显示
    132                  {
    133                      SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
    134                      PutS(p, -1);
    135                  }
    136                  else if((string_id!=1)&&(string_id<5))    ////16*16字体非居中显示
    137                  {
    138                      SetTextPos(x, y);
    139                      PutS(p, -1);
    140                  }
    141                  else        //6*8字体显示
    142                  {
    143                      if(x == 255)
    144                      {
    145                          SetTextPos((SCR_WIDTH - StrLength*CHAR_WIDTH) /2, y);
    146                          PutS(p, -1);
    147                      }
    148                      else if(StrLength<22)
    149                      {
    150                          SetTextPos(x, y);
    151                          PutS(p, -1);
    152                      }
    153                      else
    154                      {
    155                          SetTextPos(0, y);
    156                          PutS(p, 21);
    157                          SetTextPos(0, y+8);
    158                          PutS(p+21, -1);
    159                      }
    160                  }
    161                  */
    162                  if(x == 255)    //16*16字体居中显示
   \   014D  DD4608            LD      B,(IX+8)
   \   0150  04                INC     B
   \   0151  202D              JR      NZ,?0022
   \   0153            ?0021:
    163                  {
    164                      SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
   \   0153  DD4E0A            LD      C,(IX+10)
   \   0156  C5                PUSH    BC
   \   0157  FDE5              PUSH    IY
   \   0159  D1                POP     DE
   \   015A  3E00              LD      A,BYTE3 get_large_text_width
   \   015C  215D00            LD      HL,LWRD get_large_text_width
   \   015F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0162  5D                LD      E,L
   \   0163  1600              LD      D,0
   \   0165  21B000            LD      HL,176
   \   0168  A7                AND     A
   \   0169  ED52              SBC     HL,DE
   \   016B  EB                EX      DE,HL
   \   016C  010200            LD      BC,2
   \   016F  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0172  C1                POP     BC
   \   0173  CD0000            CALL    LWRD SetTextPos
    165                      PutS(p, -1);
   \   0176  0EFF              LD      C,255
   \   0178  FDE5              PUSH    IY
   \   017A  D1                POP     DE
   \   017B  CD0000            CALL    LWRD PutS
    166                  }
    167                  else                                            //16*16字体非居中显示
   \   017E  1811              JR      ?0023
   \   0180            ?0022:
    168                  {
    169                      SetTextPos(x, y);
   \   0180  DD4E0A            LD      C,(IX+10)
   \   0183  DD5E08            LD      E,(IX+8)
   \   0186  CD0000            CALL    LWRD SetTextPos
    170                      PutS(p, -1);
   \   0189  0EFF              LD      C,255
   \   018B  FDE5              PUSH    IY
   \   018D  D1                POP     DE
   \   018E  CD0000            CALL    LWRD PutS
   \   0191            ?0023:
    171                  }
    172          
    173              return 1;
   \   0191  210100            LD      HL,1
    174          }
   \   0194            ?0024:
   \   0194  DDF9              LD      SP,IX
   \   0196  DDE1              POP     IX
   \   0198  FDE1              POP     IY
   \   019A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    UDATA0
   \   0000            file_name:
   \   000C                    DEFS    12
   \   000C            dir_name:
   \   002A                    DEFS    30
   \   002A                    END

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

⌨️ 快捷键说明

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