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

📄 ap_common2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 2 页
字号:
     97          
     98              //读entry
     99              SD_FSeek(res_fp, SEEK_SET, (long)id * sizeof(res_entry_t)); // 指针指向字符在文件中的位置
   \   0060  EB                EX      DE,HL
   \   0061  010000            LD      BC,0
   \   0064  3E04              LD      A,4
   \   0066  CD0000            CALL    LWRD ?L_LSH_L03
   \   0069  C5                PUSH    BC
   \   006A  E5                PUSH    HL
   \   006B  0E00              LD      C,0
   \   006D  ED5B0000          LD      DE,(res_fp)
   \   0071  CD0000            CALL    LWRD SD_FSeek
   \   0074  E1                POP     HL
   \   0075  E1                POP     HL
    100              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));          //res_fp->&res_entry
   \   0076  211000            LD      HL,16
   \   0079  E5                PUSH    HL
   \   007A  010000            LD      BC,res_entry
   \   007D  ED5B0000          LD      DE,(res_fp)
   \   0081  CD0000            CALL    LWRD SD_FRead
   \   0084  F1                POP     AF
    101              if( res_entry.type != RES_TYPE_MSTRING) return 0;           //非Multisring 返回
   \   0085  3A0600            LD      A,(res_entry+6)
   \   0088  FE03              CP      3
   \   008A  2806              JR      Z,?0014
   \   008C            ?0013:
   \   008C  210000            LD      HL,0
    102          
    103              ASSERT(res_entry.length <= sizeof(buf));
   \   008F  C32801            JP      LWRD ?0024
   \   0092            ?0014:
    104          
    105              //读数据
    106              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   0092  2A0200            LD      HL,(res_entry+2)
   \   0095  E5                PUSH    HL
   \   0096  2A0000            LD      HL,(res_entry)
   \   0099  E5                PUSH    HL
   \   009A  0E00              LD      C,0
   \   009C            ?0030:
   \   009C  ED5B0000          LD      DE,(res_fp)
   \   00A0  CD0000            CALL    LWRD SD_FSeek
   \   00A3  E1                POP     HL
   \   00A4  E1                POP     HL
    107              SD_FRead(res_fp, buf, 50);
   \   00A5  213200            LD      HL,50
   \   00A8  E5                PUSH    HL
   \   00A9  2E06              LD      L,6
   \   00AB  39                ADD     HL,SP
   \   00AC  4D                LD      C,L
   \   00AD  44                LD      B,H
   \   00AE  ED5B0000          LD      DE,(res_fp)
   \   00B2  CD0000            CALL    LWRD SD_FRead
   \   00B5  F1                POP     AF
    108          
    109              //定位到 string_id
    110              p = buf;
   \   00B6  210400            LD      HL,4
   \   00B9  39                ADD     HL,SP
   \   00BA  E5                PUSH    HL
   \   00BB  FDE1              POP     IY
    111              string_idtemp=string_id;
   \   00BD            ?0016:
    112              while(string_id)
   \   00BD  AF                XOR     A
   \   00BE  DDB6FE            OR      (IX-2)
   \   00C1  282B              JR      Z,?0015
   \   00C3            ?0017:
    113              {
    114                  AddBuf=1;
   \   00C3  DD36C601          LD      (IX-58),1
   \   00C7            ?0019:
    115                  while(*p!=0)
   \   00C7  AF                XOR     A
   \   00C8  FDB600            OR      (IY+0)
   \   00CB  2807              JR      Z,?0018
   \   00CD            ?0020:
    116                  {
    117                      AddBuf++;    //找到第string_id 个0
   \   00CD  DD34C6            INC     (IX-58)
    118                      p++;
   \   00D0  FD23              INC     IY
   \   00D2  18F3              JR      ?0019
   \   00D4            ?0018:
    119                  }
    120                  string_id--;
   \   00D4  DD35FE            DEC     (IX-2)
    121                  res_entry.offset=res_entry.offset+AddBuf;
   \   00D7  210000            LD      HL,res_entry
   \   00DA  DD5EC6            LD      E,(IX-58)
   \   00DD  4F                LD      C,A
   \   00DE  51                LD      D,C
   \   00DF  47                LD      B,A
   \   00E0  CD0000            CALL    LWRD ?L_ADDASG_L03
    122                  SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00E3  2A0200            LD      HL,(res_entry+2)
   \   00E6  E5                PUSH    HL
   \   00E7  2A0000            LD      HL,(res_entry)
   \   00EA  E5                PUSH    HL
   \   00EB  4F                LD      C,A
   \   00EC  18AE              JR      ?0030
    123                  SD_FRead(res_fp, buf, 50);
    124                  p = buf;
   \   00EE            ?0015:
    125              }
    126              string_id=string_idtemp;
    127              ASSERT((WORD)(p - buf) <= res_entry.length);
    128          
    129                  StrLength=(BYTE)strlen(p);
   \   00EE  CD0000            CALL    LWRD ?STRLEN_L11
    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字体居中显示
   \   00F1  DD4608            LD      B,(IX+8)
   \   00F4  04                INC     B
   \   00F5  DD4E0A            LD      C,(IX+10)
   \   00F8  201D              JR      NZ,?0022
   \   00FA            ?0021:
    163                  {
    164                      SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
   \   00FA  C5                PUSH    BC
   \   00FB  FDE5              PUSH    IY
   \   00FD  D1                POP     DE
   \   00FE  3E00              LD      A,BYTE3 get_large_text_width
   \   0100  214000            LD      HL,LWRD get_large_text_width
   \   0103  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0106  5D                LD      E,L
   \   0107  50                LD      D,B
   \   0108  21B000            LD      HL,176
   \   010B  A7                AND     A
   \   010C  ED52              SBC     HL,DE
   \   010E  EB                EX      DE,HL
   \   010F  0E02              LD      C,2
   \   0111  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0114  C1                POP     BC
   \   0115  1803              JR      ?0029
    165                      PutS(p, -1);
    166                  }
    167                  else                                            //16*16字体非居中显示
   \   0117            ?0022:
    168                  {
    169                      SetTextPos(x, y);
   \   0117  DD5E08            LD      E,(IX+8)
   \   011A            ?0029:
   \   011A  CD0000            CALL    LWRD SetTextPos
    170                      PutS(p, -1);
   \   011D  0EFF              LD      C,255
   \   011F  FDE5              PUSH    IY
   \   0121  D1                POP     DE
   \   0122  CD0000            CALL    LWRD PutS
   \   0125            ?0023:
    171                  }
    172          
    173              return 1;
   \   0125  210100            LD      HL,1
    174          }
   \   0128            ?0024:
   \   0128  DDF9              LD      SP,IX
   \   012A  DDE1              POP     IX
   \   012C  FDE1              POP     IY
   \   012E  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: 305
Constant size: 0
Static variable size: Data(42) Iram(0)

⌨️ 快捷键说明

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