ap_common2.lst

来自「MP3 整个 SDK」· LST 代码 · 共 523 行 · 第 1/2 页

LST
523
字号
    123              p = buf;
   \   0092  210600            LD      HL,6
   \   0095  39                ADD     HL,SP
   \   0096  DD75C8            LD      (IX-56),L
   \   0099  DD74C9            LD      (IX-55),H
    124              string_idtemp=string_id;
   \   009C  DD4604            LD      B,(IX+4)
   \   009F  DD70CC            LD      (IX-52),B
   \   00A2            ?0016:
    125              while(string_id)
   \   00A2  AF                XOR     A
   \   00A3  DDB604            OR      (IX+4)
   \   00A6  284F              JR      Z,?0015
   \   00A8            ?0017:
    126              {
    127          
    128                  AddBuf=1;
   \   00A8  DD36CA01          LD      (IX-54),1
   \   00AC            ?0019:
    129                  while(*p!=0)
   \   00AC  DD6EC8            LD      L,(IX-56)
   \   00AF  DD66C9            LD      H,(IX-55)
   \   00B2  AF                XOR     A
   \   00B3  B6                OR      (HL)
   \   00B4  280D              JR      Z,?0018
   \   00B6            ?0020:
    130                  {
    131                      AddBuf++;    //找到第string_id 个0
   \   00B6  DD34CA            INC     (IX-54)
    132                      p++;
   \   00B9  DD34C8            INC     (IX-56)
   \   00BC  20EE              JR      NZ,?0019
   \   00BE  DD34C9            INC     (IX-55)
   \   00C1  18E9              JR      ?0019
   \   00C3            ?0018:
    133                  }
    134                  string_id--;
   \   00C3  DD3504            DEC     (IX+4)
    135                  res_entry.offset=res_entry.offset+AddBuf;
   \   00C6  210000            LD      HL,res_entry
   \   00C9  DD5ECA            LD      E,(IX-54)
   \   00CC  4F                LD      C,A
   \   00CD  51                LD      D,C
   \   00CE  47                LD      B,A
   \   00CF  CD0000            CALL    LWRD ?L_ADDASG_L03
    136              SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
   \   00D2  2A0200            LD      HL,(res_entry+2)
   \   00D5  E5                PUSH    HL
   \   00D6  2A0000            LD      HL,(res_entry)
   \   00D9  E5                PUSH    HL
   \   00DA  4F                LD      C,A
   \   00DB  CDB101            CALL    LWRD ?0054
   \   00DE  E1                POP     HL
   \   00DF  E1                POP     HL
    137                  SD_FRead(res_fp, buf, 50);
   \   00E0  213200            LD      HL,50
   \   00E3  E5                PUSH    HL
   \   00E4  2E08              LD      L,8
   \   00E6  39                ADD     HL,SP
   \   00E7  CDB801            CALL    LWRD ?0056
   \   00EA  F1                POP     AF
    138                  p = buf;
   \   00EB  210600            LD      HL,6
   \   00EE  39                ADD     HL,SP
   \   00EF  DD75C8            LD      (IX-56),L
   \   00F2  DD74C9            LD      (IX-55),H
   \   00F5  18AB              JR      ?0016
   \   00F7            ?0015:
    139          
    140              }
    141              string_id=string_idtemp;
    142              ASSERT((WORD)(p - buf) <= res_entry.length);
    143          
    144              StrLength=(BYTE)strlen(p);
   \   00F7  CD0000            CALL    LWRD ?STRLEN_L11
    145                  if((x == 255)&&(string_id!=1)&&(string_id<5))    //16*16字体居中显示
   \   00FA  DD46CC            LD      B,(IX-52)
   \   00FD  DD7004            LD      (IX+4),B
   \   0100  DD460A            LD      B,(IX+10)
   \   0103  04                INC     B
   \   0104  202E              JR      NZ,?0022
   \   0106  DD4604            LD      B,(IX+4)
   \   0109  05                DEC     B
   \   010A  2828              JR      Z,?0022
   \   010C  DD7E04            LD      A,(IX+4)
   \   010F  FE05              CP      5
   \   0111  3021              JR      NC,?0022
   \   0113            ?0024:
   \   0113            ?0023:
   \   0113            ?0021:
    146                  {
    147                      {
    148                               SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
   \   0113  DD4E0C            LD      C,(IX+12)
   \   0116  C5                PUSH    BC
   \   0117  DD5EC8            LD      E,(IX-56)
   \   011A  DD56C9            LD      D,(IX-55)
   \   011D  3E00              LD      A,BYTE3 get_large_text_width
   \   011F  213B00            LD      HL,LWRD get_large_text_width
   \   0122  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0125  5D                LD      E,L
   \   0126  1600              LD      D,0
   \   0128  21DC00            LD      HL,220
   \   012B  A7                AND     A
   \   012C  ED52              SBC     HL,DE
   \   012E  EB                EX      DE,HL
   \   012F  010200            LD      BC,2
   \   0132  182C              JR      ?0052
    149                           PutS(p, -1);
   \   0134            ?0022:
    150                      }
    151                  }
    152                  else if((string_id!=1)&&(string_id<5))    ////16*16字体非居中显示
   \   0134  DD4604            LD      B,(IX+4)
   \   0137  05                DEC     B
   \   0138  280C              JR      Z,?0027
   \   013A  DD7E04            LD      A,(IX+4)
   \   013D  FE05              CP      5
   \   013F  3005              JR      NC,?0027
   \   0141            ?0029:
   \   0141            ?0028:
   \   0141            ?0026:
    153                  {
    154                      SetTextPos(x, y);
   \   0141  DD4E0C            LD      C,(IX+12)
   \   0144  1828              JR      ?0051
    155                      PutS(p, -1);
    156                  }
    157                  else        //6*8字体显示
   \   0146            ?0027:
    158                  {
    159                      if(x == 255)
   \   0146  DD460A            LD      B,(IX+10)
   \   0149  04                INC     B
   \   014A  201A              JR      NZ,?0032
   \   014C            ?0031:
    160                      {
    161                          SetTextPos((SCR_WIDTH - StrLength*CHAR_WIDTH) /2, y);
   \   014C  DD4E0C            LD      C,(IX+12)
   \   014F  C5                PUSH    BC
   \   0150  60                LD      H,B
   \   0151  29                ADD     HL,HL
   \   0152  5D                LD      E,L
   \   0153  54                LD      D,H
   \   0154  29                ADD     HL,HL
   \   0155  19                ADD     HL,DE
   \   0156  EB                EX      DE,HL
   \   0157  21DC00            LD      HL,220
   \   015A  A7                AND     A
   \   015B  ED52              SBC     HL,DE
   \   015D  EB                EX      DE,HL
   \   015E  0E02              LD      C,2
   \   0160            ?0052:
   \   0160  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0163  C1                POP     BC
   \   0164  180B              JR      ?0049
    162                          PutS(p, -1);
   \   0166            ?0032:
    163                      }
    164                      else if(StrLength<22)
   \   0166  7D                LD      A,L
   \   0167  FE16              CP      22
   \   0169  DD4E0C            LD      C,(IX+12)
   \   016C  3010              JR      NC,?0035
   \   016E            ?0034:
    165                      {
    166                          SetTextPos(x, y);
   \   016E            ?0051:
   \   016E  DD5E0A            LD      E,(IX+10)
   \   0171            ?0049:
   \   0171  CD0000            CALL    LWRD SetTextPos
    167                          PutS(p, -1);
   \   0174  0EFF              LD      C,255
   \   0176  DD5EC8            LD      E,(IX-56)
   \   0179  DD56C9            LD      D,(IX-55)
   \   017C  1828              JR      ?0041
    168                      }
    169                      else
   \   017E            ?0035:
    170                      {
    171                          SetTextPos(0, y);
   \   017E  1E00              LD      E,0
   \   0180  CD0000            CALL    LWRD SetTextPos
    172                          PutS(p, 21);
   \   0183  0E15              LD      C,21
   \   0185  DD5EC8            LD      E,(IX-56)
   \   0188  DD56C9            LD      D,(IX-55)
   \   018B  CD0000            CALL    LWRD PutS
    173                          SetTextPos(0, y+8);
   \   018E  DD7E0C            LD      A,(IX+12)
   \   0191  C608              ADD     A,8
   \   0193  4F                LD      C,A
   \   0194  1E00              LD      E,0
   \   0196  CD0000            CALL    LWRD SetTextPos
    174                          PutS(p+21, -1);
   \   0199  0EFF              LD      C,255
   \   019B  211500            LD      HL,21
   \   019E  DD5EC8            LD      E,(IX-56)
   \   01A1  DD56C9            LD      D,(IX-55)
   \   01A4  19                ADD     HL,DE
   \   01A5  EB                EX      DE,HL
   \   01A6            ?0041:
   \   01A6  CD0000            CALL    LWRD PutS
   \   01A9            ?0036:
   \   01A9            ?0033:
   \   01A9            ?0030:
   \   01A9            ?0025:
    175                      }
    176                  }
    177          
    178              return 1;
   \   01A9  210100            LD      HL,1
    179          }
   \   01AC            ?0037:
   \   01AC  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   01AF            ?0053:
   \   01AF  0E00              LD      C,0
   \   01B1            ?0054:
   \   01B1  ED5B0000          LD      DE,(res_fp)
   \   01B5  C30000            JP      LWRD SD_FSeek
   \   01B8            ?0056:
   \   01B8  4D                LD      C,L
   \   01B9  44                LD      B,H
   \   01BA            ?0055:
   \   01BA  ED5B0000          LD      DE,(res_fp)
   \   01BE  C30000            JP      LWRD SD_FRead
    180          
    181           
   \   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  415045            DEFB    'APE'
   \   0017  00                DEFB    0
   \   0018            voice_ext:
   \   0018  574156            DEFB    'WAV'
   \   001B  00                DEFB    0
   \   001C  414354            DEFB    'ACT'
   \   001F  00                DEFB    0
   \   0000                    RSEG    UDATA0
   \   0000            file_name:
   \   000C                    DEFS    12
   \   000C            dir_name:
   \   002A                    DEFS    30
   \   002A                    END

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

⌨️ 快捷键说明

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