ap_common2.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 405 行 · 第 1/2 页

LST
405
字号
   \   0053  010000            LD      BC,0
   \   0056  3E04              LD      A,4
   \   0058  CD0000            CALL    LWRD ?L_LSH_L03
   \   005B  C5                PUSH    BC
   \   005C  E5                PUSH    HL
   \   005D  0E00              LD      C,0
   \   005F  ED5B0000          LD      DE,(res_fp)
   \   0063  CD0000            CALL    LWRD SD_FSeek
   \   0066  E1                POP     HL
   \   0067  E1                POP     HL
    100              SD_FRead(res_fp, &res_entry, sizeof(res_entry_t));          //res_fp->&res_entry
   \   0068  211000            LD      HL,16
   \   006B  E5                PUSH    HL
   \   006C  010000            LD      BC,res_entry
   \   006F  ED5B0000          LD      DE,(res_fp)
   \   0073  CD0000            CALL    LWRD SD_FRead
   \   0076  F1                POP     AF
    101              if( res_entry.type != RES_TYPE_MSTRING) return 0;           //非Multisring 返回
   \   0077  3A0600            LD      A,(res_entry+6)
   \   007A  FE03              CP      3
   \   007C  2806              JR      Z,?0014
   \   007E            ?0013:
   \   007E  210000            LD      HL,0
    102          
    103              ASSERT(res_entry.length <= sizeof(buf));
   \   0081  C32D01            JP      LWRD ?0024
   \   0084            ?0014:
    104          
    105              //读数据
    106              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   0084  2A0200            LD      HL,(res_entry+2)
   \   0087  E5                PUSH    HL
   \   0088  2A0000            LD      HL,(res_entry)
   \   008B  E5                PUSH    HL
   \   008C  0E00              LD      C,0
   \   008E            ?0029:
   \   008E  ED5B0000          LD      DE,(res_fp)
   \   0092  CD0000            CALL    LWRD SD_FSeek
   \   0095  E1                POP     HL
   \   0096  E1                POP     HL
    107              SD_FRead(res_fp, buf, 50);
   \   0097  213200            LD      HL,50
   \   009A  E5                PUSH    HL
   \   009B  2E08              LD      L,8
   \   009D  39                ADD     HL,SP
   \   009E  4D                LD      C,L
   \   009F  44                LD      B,H
   \   00A0  ED5B0000          LD      DE,(res_fp)
   \   00A4  CD0000            CALL    LWRD SD_FRead
   \   00A7  F1                POP     AF
    108          
    109              //定位到 string_id
    110              p = buf;
   \   00A8  210600            LD      HL,6
   \   00AB  39                ADD     HL,SP
   \   00AC  DD75C8            LD      (IX-56),L
   \   00AF  DD74C9            LD      (IX-55),H
    111              string_idtemp=string_id;
   \   00B2            ?0016:
    112              while(string_id)
   \   00B2  AF                XOR     A
   \   00B3  DDB604            OR      (IX+4)
   \   00B6  2835              JR      Z,?0015
   \   00B8            ?0017:
    113              {
    114                  AddBuf=1;
   \   00B8  DD36CA01          LD      (IX-54),1
   \   00BC            ?0019:
    115                  while(*p!=0)
   \   00BC  DD6EC8            LD      L,(IX-56)
   \   00BF  DD66C9            LD      H,(IX-55)
   \   00C2  AF                XOR     A
   \   00C3  B6                OR      (HL)
   \   00C4  280D              JR      Z,?0018
   \   00C6            ?0020:
    116                  {
    117                      AddBuf++;    //找到第string_id 个0
   \   00C6  DD34CA            INC     (IX-54)
    118                      p++;
   \   00C9  DD34C8            INC     (IX-56)
   \   00CC  20EE              JR      NZ,?0019
   \   00CE  DD34C9            INC     (IX-55)
   \   00D1  18E9              JR      ?0019
   \   00D3            ?0018:
    119                  }
    120                  string_id--;
   \   00D3  DD3504            DEC     (IX+4)
    121                  res_entry.offset=res_entry.offset+AddBuf;
   \   00D6  210000            LD      HL,res_entry
   \   00D9  DD5ECA            LD      E,(IX-54)
   \   00DC  4F                LD      C,A
   \   00DD  51                LD      D,C
   \   00DE  47                LD      B,A
   \   00DF  CD0000            CALL    LWRD ?L_ADDASG_L03
    122                  SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00E2  2A0200            LD      HL,(res_entry+2)
   \   00E5  E5                PUSH    HL
   \   00E6  2A0000            LD      HL,(res_entry)
   \   00E9  E5                PUSH    HL
   \   00EA  4F                LD      C,A
   \   00EB  18A1              JR      ?0029
    123                  SD_FRead(res_fp, buf, 50);
    124                  p = buf;
   \   00ED            ?0015:
    125              }
    126              string_id=string_idtemp;
    127              ASSERT((WORD)(p - buf) <= res_entry.length);
    128          
    129                  StrLength=(BYTE)strlen(p);
   \   00ED  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字体居中显示
   \   00F0  DD460A            LD      B,(IX+10)
   \   00F3  04                INC     B
   \   00F4  DD4E0C            LD      C,(IX+12)
   \   00F7  2020              JR      NZ,?0022
   \   00F9            ?0021:
    163                  {
    164                      SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
   \   00F9  C5                PUSH    BC
   \   00FA  DD5EC8            LD      E,(IX-56)
   \   00FD  DD56C9            LD      D,(IX-55)
   \   0100  3E00              LD      A,BYTE3 get_large_text_width
   \   0102  213B00            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  21B000            LD      HL,176
   \   010D  A7                AND     A
   \   010E  ED52              SBC     HL,DE
   \   0110  EB                EX      DE,HL
   \   0111  0E02              LD      C,2
   \   0113  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0116  C1                POP     BC
   \   0117  1803              JR      ?0028
    165                      PutS(p, -1);
    166                  }
    167                  else                                            //16*16字体非居中显示
   \   0119            ?0022:
    168                  {
    169                      SetTextPos(x, y);
   \   0119  DD5E0A            LD      E,(IX+10)
   \   011C            ?0028:
   \   011C  CD0000            CALL    LWRD SetTextPos
    170                      PutS(p, -1);
   \   011F  0EFF              LD      C,255
   \   0121  DD5EC8            LD      E,(IX-56)
   \   0124  DD56C9            LD      D,(IX-55)
   \   0127  CD0000            CALL    LWRD PutS
   \   012A            ?0023:
    171                  }
    172          
    173              return 1;
   \   012A  210100            LD      HL,1
    174          }
   \   012D            ?0024:
   \   012D  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0000                    RSEG    UDATA0
   \   0000            file_name:
   \   000C                    DEFS    12
   \   000C            dir_name:
   \   002A                    DEFS    30
   \   002A                    END

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

⌨️ 快捷键说明

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