📄 main.lst
字号:
171 delay1();
172 output8(0x70,IO00Bak);
173 delay1();
174 */
175 return file_num;
\ 0251 FDE5 PUSH IY
\ 0253 E1 POP HL
176 }
\ 0254 ?0051:
\ 0254 DDF9 LD SP,IX
\ 0256 DDE1 POP IX
\ 0258 FDE1 POP IY
\ 025A C1 POP BC
\ 025B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 025E ?0102:
\ 025E 110200 LD DE,g_ID3InfoBuf
\ 0261 ?0103:
\ 0261 3E00 LD A,BYTE3 unitochar
\ 0263 210000 LD HL,LWRD unitochar
\ 0266 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0269 StoreID3toIDM:
177
178 //向IDM 存储ID3 信息
179 void StoreID3toIDM( bool mode,unsigned int FileNum,file_location_t *location, int langid)
180 {
\ 0269 FDE5 PUSH IY
\ 026B DDE5 PUSH IX
\ 026D DD210000 LD IX,0
\ 0271 DD39 ADD IX,SP
\ 0273 C5 PUSH BC
\ 0274 D5 PUSH DE
\ 0275 F5 PUSH AF
\ 0276 F5 PUSH AF
\ 0277 F5 PUSH AF
181 BYTE IO05bak = input8(0x05);
\ 0278 DB05 IN A,(5)
\ 027A DD77FB LD (IX-5),A
182 BYTE NameNum;
183 char *IDMaddress = (char *)(FileNum*OneFileInfor+IDMStartAddress); // IDM 中存储的起始地址
\ 027D 69 LD L,C
\ 027E 60 LD H,B
\ 027F 29 ADD HL,HL
\ 0280 29 ADD HL,HL
\ 0281 29 ADD HL,HL
\ 0282 29 ADD HL,HL
\ 0283 29 ADD HL,HL
\ 0284 3E40 LD A,64
\ 0286 84 ADD A,H
\ 0287 67 LD H,A
\ 0288 E5 PUSH HL
\ 0289 FDE1 POP IY
184 char *IPMaddress = (char *)(FileNum*OneLocationBYTE+IDMStartAddress); // IPM 中存储文件路径的起始地址
\ 028B 012900 LD BC,41
\ 028E DD5EFE LD E,(IX-2)
\ 0291 DD56FF LD D,(IX-1)
\ 0294 CD0000 CALL LWRD ?S_MUL_L02
\ 0297 3E40 LD A,64
\ 0299 82 ADD A,D
\ 029A 57 LD D,A
\ 029B DD73F8 LD (IX-8),E
\ 029E DD72F9 LD (IX-7),D
185 int *FileNumAddress =(int *)IDMaddress; //存放文件原始编号的地址
\ 02A1 DD75F6 LD (IX-10),L
\ 02A4 DD74F7 LD (IX-9),H
186 // int *LocationAddress = (int *)IPMaddress; // 存放文件原始编号的地址
187 output8(0x05,0x34); //IDM LOW BYTE->TIT2
\ 02A7 3E34 LD A,52
\ 02A9 D305 OUT (5),A
188 *FileNumAddress=FileNum;
\ 02AB DD4EFE LD C,(IX-2)
\ 02AE 71 LD (HL),C
\ 02AF DD46FF LD B,(IX-1)
\ 02B2 23 INC HL
\ 02B3 70 LD (HL),B
189 if(mode)
\ 02B4 AF XOR A
\ 02B5 DDB6FC OR (IX-4)
\ 02B8 011E00 LD BC,30
\ 02BB FDE5 PUSH IY
\ 02BD D1 POP DE
\ 02BE 13 INC DE
\ 02BF 13 INC DE
\ 02C0 2807 JR Z,?0053
\ 02C2 ?0052:
190 { //原始编号
191 memcpy(IDMaddress+2,&g_ID3InfoBuf[0],30); //TIT2 store
\ 02C2 210200 LD HL,g_ID3InfoBuf
\ 02C5 EDB0 LDIR
192 }
193 else
\ 02C7 1804 JR ?0054
\ 02C9 ?0053:
194 {
195 memset(IDMaddress+2,0,30);
\ 02C9 68 LD L,B
\ 02CA CD0000 CALL LWRD ?MEMSET_L11
\ 02CD ?0054:
196 }
197 // memcpy(IDMaddress+32,location,sizeof(file_location_t)); //location store
198 output8(0x05,0x35); //IDM MID BYTE->TPE1
\ 02CD 3E35 LD A,53
\ 02CF D305 OUT (5),A
199 *FileNumAddress=FileNum;
\ 02D1 DD6EFE LD L,(IX-2)
\ 02D4 DD66FF LD H,(IX-1)
\ 02D7 E5 PUSH HL
\ 02D8 DD6EF6 LD L,(IX-10)
\ 02DB DD66F7 LD H,(IX-9)
\ 02DE C1 POP BC
\ 02DF 71 LD (HL),C
\ 02E0 23 INC HL
\ 02E1 70 LD (HL),B
200 if(mode)
\ 02E2 AF XOR A
\ 02E3 DDB6FC OR (IX-4)
\ 02E6 011E00 LD BC,30
\ 02E9 FDE5 PUSH IY
\ 02EB D1 POP DE
\ 02EC 13 INC DE
\ 02ED 13 INC DE
\ 02EE 2807 JR Z,?0056
\ 02F0 ?0055:
201 {
202 memcpy(IDMaddress+2,&g_ID3InfoBuf[30],30);
\ 02F0 212000 LD HL,g_ID3InfoBuf+30
\ 02F3 EDB0 LDIR
203 }
204 else
\ 02F5 1804 JR ?0057
\ 02F7 ?0056:
205 {
206 memset(IDMaddress+2,0,30);
\ 02F7 68 LD L,B
\ 02F8 CD0000 CALL LWRD ?MEMSET_L11
\ 02FB ?0057:
207 }
208 // memcpy(IDMaddress+32,&g_ID3InfoBuf[0],sizeof(file_location_t));
209 output8(0x05,0x36); //IDM HIG BYTE -> TALB
\ 02FB 3E36 LD A,54
\ 02FD D305 OUT (5),A
210 *FileNumAddress=FileNum;
\ 02FF DD6EFE LD L,(IX-2)
\ 0302 DD66FF LD H,(IX-1)
\ 0305 E5 PUSH HL
\ 0306 DD6EF6 LD L,(IX-10)
\ 0309 DD66F7 LD H,(IX-9)
\ 030C C1 POP BC
\ 030D 71 LD (HL),C
\ 030E 23 INC HL
\ 030F 70 LD (HL),B
211 if(mode)
\ 0310 AF XOR A
\ 0311 DDB6FC OR (IX-4)
\ 0314 011E00 LD BC,30
\ 0317 FDE5 PUSH IY
\ 0319 D1 POP DE
\ 031A 13 INC DE
\ 031B 13 INC DE
\ 031C 2807 JR Z,?0059
\ 031E ?0058:
212 {
213 memcpy(IDMaddress+2,&g_ID3InfoBuf[60],30);
\ 031E 213E00 LD HL,g_ID3InfoBuf+60
\ 0321 EDB0 LDIR
214 }
215 else
\ 0323 1804 JR ?0060
\ 0325 ?0059:
216 {
217 memset(IDMaddress+2,0,30);
\ 0325 68 LD L,B
\ 0326 CD0000 CALL LWRD ?MEMSET_L11
\ 0329 ?0060:
218 }
219 // memcpy(IDMaddress+32,&g_ID3InfoBuf[0],sizeof(file_location_t));
220
221 output8(0x05,IO05bak);
\ 0329 DD7EFB LD A,(IX-5)
\ 032C D305 OUT (5),A
222 memcpy(g_ID3InfoBuf,location->filename,12); // 根据短名取长名
\ 032E 110200 LD DE,g_ID3InfoBuf
\ 0331 211A00 LD HL,26
\ 0334 DD4E08 LD C,(IX+8)
\ 0337 DD4609 LD B,(IX+9)
\ 033A 09 ADD HL,BC
\ 033B 010C00 LD BC,12
\ 033E EDB0 LDIR
223 NameNum =FS_GetName(g_ID3InfoBuf, 30); //取出长名)
\ 0340 0E1E LD C,30
\ 0342 110200 LD DE,g_ID3InfoBuf
\ 0345 CD0000 CALL LWRD FS_GetName
224 if(NameNum!=0)
\ 0348 B7 OR A
\ 0349 2834 JR Z,?0062
\ 034B ?0061:
225 {
226 unitochar(g_ID3InfoBuf, NameNum*2+2, langid);
\ 034B DD6E0A LD L,(IX+10)
\ 034E E5 PUSH HL
\ 034F 6F LD L,A
\ 0350 2600 LD H,0
\ 0352 29 ADD HL,HL
\ 0353 4D LD C,L
\ 0354 44 LD B,H
\ 0355 03 INC BC
\ 0356 03 INC BC
\ 0357 CD5E02 CALL LWRD ?0102
\ 035A F1 POP AF
227 // *IDMaddress=(BYTE)FileNum;
228 output8(0x05,0xc0); //IPM LOW BYTE ->Filename
\ 035B 3EC0 LD A,192
\ 035D D305 OUT (5),A
229 *FileNumAddress=FileNum;
\ 035F DD6EFE LD L,(IX-2)
\ 0362 DD66FF LD H,(IX-1)
\ 0365 E5 PUSH HL
\ 0366 DD6EF6 LD L,(IX-10)
\ 0369 DD66F7 LD H,(IX-9)
\ 036C C1 POP BC
\ 036D 71 LD (HL),C
\ 036E 23 INC HL
\ 036F 70 LD (HL),B
230 memcpy(IDMaddress+2,&g_ID3InfoBuf[0],30); //
\ 0370 011E00 LD BC,30
\ 0373 FDE5 PUSH IY
\ 0375 D1 POP DE
\ 0376 13 INC DE
\ 0377 13 INC DE
\ 0378 210200 LD HL,g_ID3InfoBuf
\ 037B EDB0 LDIR
231 }
232 else
\ 037D 1837 JR ?0063
\ 037F ?0062:
233 {
234 output8(0x05,0xc0); //IPM LOW BYTE ->Filename
\ 037F 3EC0 LD A,192
\ 0381 D305 OUT (5),A
235 *FileNumAddress=FileNum;
\ 0383 DD6EFE LD L,(IX-2)
\ 0386 DD66FF LD H,(IX-1)
\ 0389 E5 PUSH HL
\ 038A DD6EF6 LD L,(IX-10)
\ 038D DD66F7 LD H,(IX-9)
\ 0390 C1 POP BC
\ 0391 71 LD (HL),C
\ 0392 23 INC HL
\ 0393 70 LD (HL),B
236 memcpy(IDMaddress+2,location->filename,12);
\ 0394 FDE5 PUSH IY
\ 0396 D1 POP DE
\ 0397 13 INC DE
\ 0398 13 INC DE
\ 0399 211A00 LD HL,26
\ 039C DD4E08 LD C,(IX+8)
\ 039F DD4609 LD B,(IX+9)
\ 03A2 09 ADD HL,BC
\ 03A3 010C00 LD BC,12
\ 03A6 EDB0 LDIR
237 memset(IDMaddress+14,0,18);
\ 03A8 0E12 LD C,18
\ 03AA 210E00 LD HL,14
\ 03AD FDE5 PUSH IY
\ 03AF D1 POP DE
\ 03B0 19 ADD HL,DE
\ 03B1 EB EX DE,HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -