📄 main.lst
字号:
\ 03B2 68 LD L,B
\ 03B3 CD0000 CALL LWRD ?MEMSET_L11
\ 03B6 ?0063:
238 }
239 // memcpy(IDMaddress+31,location,sizeof(file_location_t));
240 if(FileNum<399)
\ 03B6 018F01 LD BC,399
\ 03B9 DD6EFE LD L,(IX-2)
\ 03BC DD66FF LD H,(IX-1)
\ 03BF A7 AND A
\ 03C0 ED42 SBC HL,BC
\ 03C2 3006 JR NC,?0065
\ 03C4 ?0064:
241 {
242 output8(0x05,0xc1); //IPM MID BYTE
\ 03C4 3EC1 LD A,193
\ 03C6 D305 OUT (5),A
243 }
244 else
\ 03C8 1820 JR ?0066
\ 03CA ?0065:
245 {
246 output8(0x05,0xc2); //IPM HIGH BYTE
\ 03CA 3EC2 LD A,194
\ 03CC D305 OUT (5),A
247 IPMaddress = (char *)((FileNum-399)*OneLocationBYTE+IDMStartAddress);
\ 03CE 2171FE LD HL,65137
\ 03D1 DD4EFE LD C,(IX-2)
\ 03D4 DD46FF LD B,(IX-1)
\ 03D7 09 ADD HL,BC
\ 03D8 4D LD C,L
\ 03D9 44 LD B,H
\ 03DA 112900 LD DE,41
\ 03DD CD0000 CALL LWRD ?S_MUL_L02
\ 03E0 3E40 LD A,64
\ 03E2 82 ADD A,D
\ 03E3 57 LD D,A
\ 03E4 DD73F8 LD (IX-8),E
\ 03E7 DD72F9 LD (IX-7),D
\ 03EA ?0066:
248 // LocationAddress = (int* )IPMaddress;
249 }
250 // *LocationAddress = FileNum;
251 memcpy(IPMaddress,location,OneLocationBYTE);
\ 03EA 012900 LD BC,41
\ 03ED DD5EF8 LD E,(IX-8)
\ 03F0 DD56F9 LD D,(IX-7)
\ 03F3 DD6E08 LD L,(IX+8)
\ 03F6 DD6609 LD H,(IX+9)
\ 03F9 EDB0 LDIR
252 output8(0x05,IO05bak);
\ 03FB DD7EFB LD A,(IX-5)
\ 03FE D305 OUT (5),A
253 }
\ 0400 DDF9 LD SP,IX
\ 0402 DDE1 POP IX
\ 0404 FDE1 POP IY
\ 0406 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0409 CheckMusicType:
254
255
256 Music_type_t CheckMusicType( char * filename )
257 {
\ 0409 C5 PUSH BC
\ 040A DDE5 PUSH IX
\ 040C 21E4FF LD HL,65508
\ 040F 39 ADD HL,SP
\ 0410 F9 LD SP,HL
\ 0411 D5 PUSH DE
\ 0412 DDE1 POP IX
258 const char ExtMusicstr [] [4] =
259 {
260 "MP3", "WMA", "ASF", "WMV", "OGG", "APE"
261 };
\ 0414 210400 LD HL,4
\ 0417 39 ADD HL,SP
\ 0418 EB EX DE,HL
\ 0419 210000 LD HL,?0067
\ 041C 011800 LD BC,24
\ 041F EDB0 LDIR
262
263 BYTE ext[4];
264 memcpy(ext, filename + 8, 3);
\ 0421 69 LD L,C
\ 0422 60 LD H,B
\ 0423 39 ADD HL,SP
\ 0424 EB EX DE,HL
\ 0425 210800 LD HL,8
\ 0428 DDE5 PUSH IX
\ 042A C1 POP BC
\ 042B 09 ADD HL,BC
\ 042C 010300 LD BC,3
\ 042F EDB0 LDIR
265 ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
\ 0431 69 LD L,C
\ 0432 60 LD H,B
\ 0433 39 ADD HL,SP
\ 0434 7E LD A,(HL)
\ 0435 FE61 CP 97
\ 0437 380A JR C,?0071
\ 0439 3E7A LD A,122
\ 043B BE CP (HL)
\ 043C 3805 JR C,?0071
\ 043E 7E LD A,(HL)
\ 043F C6E0 ADD A,224
\ 0441 1801 JR ?0072
\ 0443 ?0071:
\ 0443 7E LD A,(HL)
\ 0444 ?0072:
\ 0444 77 LD (HL),A
266 ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
\ 0445 23 INC HL
\ 0446 7E LD A,(HL)
\ 0447 FE61 CP 97
\ 0449 380A JR C,?0077
\ 044B 3E7A LD A,122
\ 044D BE CP (HL)
\ 044E 3805 JR C,?0077
\ 0450 7E LD A,(HL)
\ 0451 C6E0 ADD A,224
\ 0453 1801 JR ?0078
\ 0455 ?0077:
\ 0455 7E LD A,(HL)
\ 0456 ?0078:
\ 0456 77 LD (HL),A
267 ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
\ 0457 23 INC HL
\ 0458 7E LD A,(HL)
\ 0459 FE61 CP 97
\ 045B 380A JR C,?0083
\ 045D 3E7A LD A,122
\ 045F BE CP (HL)
\ 0460 3805 JR C,?0083
\ 0462 7E LD A,(HL)
\ 0463 C6E0 ADD A,224
\ 0465 1801 JR ?0084
\ 0467 ?0083:
\ 0467 7E LD A,(HL)
\ 0468 ?0084:
\ 0468 77 LD (HL),A
268 ext[3] = 0;
\ 0469 23 INC HL
\ 046A 70 LD (HL),B
269
270 if (strcmp(ext, ExtMusicstr[0]) == 0)
\ 046B 2B DEC HL
\ 046C 2B DEC HL
\ 046D 2B DEC HL
\ 046E EB EX DE,HL
\ 046F 210400 LD HL,4
\ 0472 39 ADD HL,SP
\ 0473 CD0000 CALL LWRD ?STRCMP_L11
\ 0476 7D LD A,L
\ 0477 B4 OR H
\ 0478 2004 JR NZ,?0087
\ 047A ?0086:
271 {
272 return Music_MP3;
\ 047A 2E01 LD L,1
273 }
\ 047C 186E JR ?0098
\ 047E ?0087:
274 else if (strcmp(ext, ExtMusicstr[1]) == 0)
\ 047E 69 LD L,C
\ 047F 60 LD H,B
\ 0480 39 ADD HL,SP
\ 0481 EB EX DE,HL
\ 0482 210400 LD HL,4
\ 0485 39 ADD HL,SP
\ 0486 0E04 LD C,4
\ 0488 09 ADD HL,BC
\ 0489 CD0000 CALL LWRD ?STRCMP_L11
\ 048C 7D LD A,L
\ 048D B4 OR H
\ 048E 2004 JR NZ,?0089
\ 0490 ?0088:
275 {
276 return Music_WMA;
\ 0490 2E02 LD L,2
277 }
\ 0492 1858 JR ?0098
\ 0494 ?0089:
278 else if (strcmp(ext, ExtMusicstr[2]) == 0)
\ 0494 68 LD L,B
\ 0495 60 LD H,B
\ 0496 39 ADD HL,SP
\ 0497 EB EX DE,HL
\ 0498 69 LD L,C
\ 0499 60 LD H,B
\ 049A 39 ADD HL,SP
\ 049B 0E08 LD C,8
\ 049D 09 ADD HL,BC
\ 049E CD0000 CALL LWRD ?STRCMP_L11
\ 04A1 7D LD A,L
\ 04A2 B4 OR H
\ 04A3 2004 JR NZ,?0091
\ 04A5 ?0090:
279 {
280 return Music_ASF;
\ 04A5 2E03 LD L,3
281 }
\ 04A7 1843 JR ?0098
\ 04A9 ?0091:
282 else if (strcmp(ext, ExtMusicstr[3]) == 0)
\ 04A9 68 LD L,B
\ 04AA 60 LD H,B
\ 04AB 39 ADD HL,SP
\ 04AC EB EX DE,HL
\ 04AD 210400 LD HL,4
\ 04B0 39 ADD HL,SP
\ 04B1 0E0C LD C,12
\ 04B3 09 ADD HL,BC
\ 04B4 CD0000 CALL LWRD ?STRCMP_L11
\ 04B7 7D LD A,L
\ 04B8 B4 OR H
\ 04B9 2004 JR NZ,?0093
\ 04BB ?0092:
283 {
284 return Music_WMV;
\ 04BB 2E04 LD L,4
285 }
\ 04BD 182D JR ?0098
\ 04BF ?0093:
286 else if (strcmp(ext, ExtMusicstr[4]) == 0)
\ 04BF 68 LD L,B
\ 04C0 60 LD H,B
\ 04C1 39 ADD HL,SP
\ 04C2 EB EX DE,HL
\ 04C3 210400 LD HL,4
\ 04C6 39 ADD HL,SP
\ 04C7 0E10 LD C,16
\ 04C9 09 ADD HL,BC
\ 04CA CD0000 CALL LWRD ?STRCMP_L11
\ 04CD 7D LD A,L
\ 04CE B4 OR H
\ 04CF 2004 JR NZ,?0095
\ 04D1 ?0094:
287 {
288 return Music_OGG;
\ 04D1 2E05 LD L,5
289 }
\ 04D3 1817 JR ?0098
\ 04D5 ?0095:
290 else if (strcmp(ext, ExtMusicstr[5]) == 0)
\ 04D5 68 LD L,B
\ 04D6 60 LD H,B
\ 04D7 39 ADD HL,SP
\ 04D8 EB EX DE,HL
\ 04D9 210400 LD HL,4
\ 04DC 39 ADD HL,SP
\ 04DD 0E14 LD C,20
\ 04DF 09 ADD HL,BC
\ 04E0 CD0000 CALL LWRD ?STRCMP_L11
\ 04E3 7D LD A,L
\ 04E4 B4 OR H
\ 04E5 2004 JR NZ,?0097
\ 04E7 ?0096:
291 {
292 return Music_APE;
\ 04E7 2E06 LD L,6
293 }
\ 04E9 1801 JR ?0098
\ 04EB ?0097:
294 else
295 {
296 return Music_NON;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -