📄 select_music_list.lst
字号:
70 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 005D 210000 LD HL,0
\ 0060 E5 PUSH HL
\ 0061 CD0601 CALL LWRD ?0036
\ 0064 E1 POP HL
71 return RESULT_LIST_ERR;
\ 0065 216A00 LD HL,106
72 }
\ 0068 C30101 JP LWRD ?0023
\ 006B ?0010:
73
74 if(Direct==Music_Next)
\ 006B DD7E02 LD A,(IX+2)
\ 006E FE03 CP 3
\ 0070 201A JR NZ,?0012
\ 0072 ?0011:
75 {
76 if(g_music_vars.file_list_num==g_file_list_total-1)
\ 0072 2A5A00 LD HL,(g_music_vars+90)
\ 0075 E5 PUSH HL
\ 0076 21FFFF LD HL,65535
\ 0079 ED4B0000 LD BC,(g_file_list_total)
\ 007D 09 ADD HL,BC
\ 007E 4D LD C,L
\ 007F 44 LD B,H
\ 0080 E1 POP HL
\ 0081 A7 AND A
\ 0082 ED42 SBC HL,BC
\ 0084 281C JR Z,?0028
\ 0086 ?0013:
77 g_music_vars.file_list_num = 0; //最后一个文件读头
78 else
\ 0086 ?0014:
79 g_music_vars.file_list_num++;
\ 0086 2A5A00 LD HL,(g_music_vars+90)
\ 0089 23 INC HL
\ 008A 1816 JR ?0028
\ 008C ?0015:
\ 008C ?0012:
80 }
81
82 else if(Direct==Music_Prev)
\ 008C FE04 CP 4
\ 008E 2017 JR NZ,?0018
\ 0090 ?0017:
83 {
84 if(g_music_vars.file_list_num==0)
\ 0090 2A5A00 LD HL,(g_music_vars+90)
\ 0093 7D LD A,L
\ 0094 B4 OR H
\ 0095 200A JR NZ,?0020
\ 0097 ?0019:
85 g_music_vars.file_list_num = g_file_list_total-1; //从头跳到最后
\ 0097 21FFFF LD HL,65535
\ 009A ED4B0000 LD BC,(g_file_list_total)
\ 009E 09 ADD HL,BC
\ 009F 1801 JR ?0028
86 else
\ 00A1 ?0020:
87 g_music_vars.file_list_num--;
\ 00A1 2B DEC HL
\ 00A2 ?0028:
\ 00A2 225A00 LD (g_music_vars+90),HL
\ 00A5 ?0021:
88 }
89 else //只有在选择上一首和下一首歌时才需要选择读列表文件
\ 00A5 1813 JR ?0022
\ 00A7 ?0018:
90 {
91
92 FS_FClose(list_fp);
\ 00A7 FDE5 PUSH IY
\ 00A9 D1 POP DE
\ 00AA CD0000 CALL LWRD FS_FClose
93 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 00AD 210000 LD HL,0
\ 00B0 E5 PUSH HL
\ 00B1 CD0601 CALL LWRD ?0036
\ 00B4 E1 POP HL
94 return FALSE;
\ 00B5 210000 LD HL,0
95 }
\ 00B8 1847 JR ?0023
\ 00BA ?0022:
\ 00BA ?0016:
96 // ListTotalSector = FS_GetFileLen(list_fp) ; //列表文件总扇区数;
97 CurrentSeekNum = (long) (g_music_vars.file_list_num/7); //取下一个列表文件偏移
\ 00BA 5D LD E,L
\ 00BB 54 LD D,H
\ 00BC 010700 LD BC,7
\ 00BF CD0000 CALL LWRD ?US_DIV_L02
\ 00C2 EB EX DE,HL
\ 00C3 48 LD C,B
98 FS_FSeek( CurrentSeekNum, SEEK_SET, list_fp); //Seek 到要取文件的位置
\ 00C4 FDE5 PUSH IY
\ 00C6 58 LD E,B
\ 00C7 D5 PUSH DE
\ 00C8 EB EX DE,HL
\ 00C9 CD0000 CALL LWRD FS_FSeek
\ 00CC E1 POP HL
\ 00CD E1 POP HL
99 FS_FRead(SelectListBuffer,1,list_fp);
\ 00CE FDE5 PUSH IY
\ 00D0 0E01 LD C,1
\ 00D2 110000 LD DE,SelectListBuffer
\ 00D5 CD0000 CALL LWRD FS_FRead
\ 00D8 E1 POP HL
100 list_num = g_music_vars.file_list_num%7; //取文件在列表中的偏移
\ 00D9 ED5B5A00 LD DE,(g_music_vars+90)
\ 00DD 010700 LD BC,7
\ 00E0 CD0000 CALL LWRD ?US_MOD_L02
101 memcpy(&g_music_vars.location,&SelectListBuffer[list_num*71+30],OneLocationBYTE);
\ 00E3 211E00 LD HL,SelectListBuffer+30
\ 00E6 0E47 LD C,71
\ 00E8 CD0000 CALL LWRD ?S_MUL_L02
\ 00EB 19 ADD HL,DE
\ 00EC 110700 LD DE,g_music_vars+7
\ 00EF 0E29 LD C,41
\ 00F1 EDB0 LDIR
102 FS_FClose(list_fp);
\ 00F3 FDE5 PUSH IY
\ 00F5 D1 POP DE
\ 00F6 CD0000 CALL LWRD FS_FClose
103 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 00F9 C5 PUSH BC
\ 00FA CD0601 CALL LWRD ?0036
\ 00FD E1 POP HL
104 return TRUE;
\ 00FE 210100 LD HL,1
105
106 }
\ 0101 ?0023:
\ 0101 FDE1 POP IY
\ 0103 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0106 ?0036:
\ 0106 0E02 LD C,2
\ 0108 110002 LD DE,Backbuf
\ 010B C30000 JP LWRD FS_Restore
\ 0000 RSEG CSTR
\ 0000 ?0002:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0000 RSEG APC_SELECT_LIST
\ 0000 TIT2FileName2:
\ 0000 54495432 DEFB 'TIT2 BIN'
\ 0004 20202020
\ 0008 42494E
\ 000B 00 DEFB 0
\ 000C TPE1FileName2:
\ 000C 54504531 DEFB 'TPE1 BIN'
\ 0010 20202020
\ 0014 42494E
\ 0017 00 DEFB 0
\ 0018 TALBFileName2:
\ 0018 54414C42 DEFB 'TALB BIN'
\ 001C 20202020
\ 0020 42494E
\ 0023 00 DEFB 0
\ 0024 FILENAMELSIT2:
\ 0024 46494C45 DEFB 'FILENAMEBIN'
\ 0028 4E414D45
\ 002C 42494E
\ 002F 00 DEFB 0
\ 0000 RSEG APD_SELECT_LIST
\ 0000 SelectListBuffer:
\ 0200 DEFS 512
\ 0200 Backbuf:
\ 0220 DEFS 32
\ 0220 END
Errors: none
Warnings: none
Code size: 270
Constant size: 50
Static variable size: Data(544) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -