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 + -
显示快捷键?