📄 main.lst
字号:
\ 0048 111000 LD DE,g_dir_voice
\ 004B 213800 LD HL,g_record_vars+24
\ 004E CD0000 CALL LWRD ?STRCPY_L11
148 g_record_vars.location.path[11] = 0x00;
\ 0051 AF XOR A
\ 0052 324300 LD (g_record_vars+35),A
149 //g_record_vars.location.disk = 'C';
150 g_record_vars.location.filename[0] = 0;
\ 0055 324400 LD (g_record_vars+36),A
151
152 FS_CD(FS_CD_ROOT);
\ 0058 110000 LD DE,?0005
\ 005B CD0000 CALL LWRD FS_CD
153 status = FS_CD(g_dir_record);
\ 005E 110400 LD DE,g_dir_record
\ 0061 CD0000 CALL LWRD FS_CD
154 if(!status)
\ 0064 B7 OR A
\ 0065 200C JR NZ,?0007
\ 0067 ?0006:
155 {
156 status = FS_MakeDir(g_dir_record);
\ 0067 110400 LD DE,g_dir_record
\ 006A CD0000 CALL LWRD FS_MakeDir
157 if(!status)return FALSE; // 创建目录失败//create directory fail
\ 006D B7 OR A
\ 006E 2009 JR NZ,?0010
\ 0070 ?0008:
\ 0070 C32801 JP LWRD ?0126
158 }
\ 0073 ?0009:
159 else
\ 0073 ?0007:
160 FS_CD("\\");
\ 0073 110200 LD DE,?0011
\ 0076 CD0000 CALL LWRD FS_CD
\ 0079 ?0010:
161 ASSERT(status);
162
163 i = 1;
164 status = FS_Dir(file, g_dir_ext, FS_DIR_DIR);
\ 0079 0E81 LD C,129
\ 007B C5 PUSH BC
\ 007C 011C00 LD BC,g_dir_ext
\ 007F 210A00 LD HL,10
\ 0082 39 ADD HL,SP
\ 0083 EB EX DE,HL
\ 0084 CD0000 CALL LWRD FS_Dir
\ 0087 E1 POP HL
\ 0088 DD77EC LD (IX-20),A
\ 008B FD210100 LD IY,1
\ 008F ?0014:
165 ASSERT(status);
166 do
167 {
168 result = memcmp(file, g_dir_record, 8);
\ 008F 010800 LD BC,8
\ 0092 69 LD L,C
\ 0093 60 LD H,B
\ 0094 39 ADD HL,SP
\ 0095 EB EX DE,HL
\ 0096 210400 LD HL,g_dir_record
\ 0099 CD0000 CALL LWRD ?MEMCMP_L11
169 if(result == 0)break;
\ 009C 7D LD A,L
\ 009D B4 OR H
\ 009E 2817 JR Z,?0012
\ 00A0 ?0015:
\ 00A0 ?0016:
170 i++;
171 }
172 while((status = FS_Dir(file, g_dir_ext, FS_DIR_DIR_CONT)));
\ 00A0 0E01 LD C,1
\ 00A2 C5 PUSH BC
\ 00A3 011C00 LD BC,g_dir_ext
\ 00A6 210A00 LD HL,10
\ 00A9 39 ADD HL,SP
\ 00AA EB EX DE,HL
\ 00AB CD0000 CALL LWRD FS_Dir
\ 00AE E1 POP HL
\ 00AF DD77EC LD (IX-20),A
\ 00B2 B7 OR A
\ 00B3 FD23 INC IY
\ 00B5 20D8 JR NZ,?0014
\ 00B7 ?0012:
173 if(!status)
\ 00B7 AF XOR A
\ 00B8 DDB6EC OR (IX-20)
\ 00BB 286B JR Z,?0126
\ 00BD ?0017:
174 return FALSE;
\ 00BD ?0018:
175
176 g_record_vars.location.DirNo[0] = i;
\ 00BD FDE5 PUSH IY
\ 00BF E1 POP HL
\ 00C0 7D LD A,L
\ 00C1 322B00 LD (g_record_vars+11),A
177
178 FS_CD(g_dir_record);
\ 00C4 110400 LD DE,g_dir_record
\ 00C7 CD0000 CALL LWRD FS_CD
179 status = FS_CD(g_dir_voice);
\ 00CA 111000 LD DE,g_dir_voice
\ 00CD CD0000 CALL LWRD FS_CD
180 if(!status)
\ 00D0 B7 OR A
\ 00D1 200B JR NZ,?0020
\ 00D3 ?0019:
181 {
182 status = FS_MakeDir(g_dir_voice);
\ 00D3 111000 LD DE,g_dir_voice
\ 00D6 CD0000 CALL LWRD FS_MakeDir
183 if(!status)return FALSE; // 创建目录失败
\ 00D9 B7 OR A
\ 00DA 2008 JR NZ,?0023
\ 00DC ?0021:
\ 00DC 184A JR ?0126
184 }
\ 00DE ?0022:
185 else
\ 00DE ?0020:
186 FS_CD("\\");
\ 00DE 110200 LD DE,?0011
\ 00E1 CD0000 CALL LWRD FS_CD
\ 00E4 ?0023:
187 ASSERT(status);
188
189 i = 1;
190 status = FS_Dir(file, g_dir_ext, FS_DIR_DIR);
\ 00E4 0E81 LD C,129
\ 00E6 C5 PUSH BC
\ 00E7 011C00 LD BC,g_dir_ext
\ 00EA 210A00 LD HL,10
\ 00ED 39 ADD HL,SP
\ 00EE EB EX DE,HL
\ 00EF CD0000 CALL LWRD FS_Dir
\ 00F2 E1 POP HL
\ 00F3 DD77EC LD (IX-20),A
\ 00F6 FD210100 LD IY,1
\ 00FA ?0026:
191 ASSERT(status);
192 do
193 {
194 result = memcmp(file, g_dir_voice, 8);
\ 00FA 010800 LD BC,8
\ 00FD 69 LD L,C
\ 00FE 60 LD H,B
\ 00FF 39 ADD HL,SP
\ 0100 EB EX DE,HL
\ 0101 211000 LD HL,g_dir_voice
\ 0104 CD0000 CALL LWRD ?MEMCMP_L11
195 if(result == 0)break;
\ 0107 7D LD A,L
\ 0108 B4 OR H
\ 0109 2817 JR Z,?0024
\ 010B ?0027:
\ 010B ?0028:
196 i++;
197 }
198 while((status = FS_Dir(file, g_dir_ext, FS_DIR_DIR_CONT)));
\ 010B 0E01 LD C,1
\ 010D C5 PUSH BC
\ 010E 011C00 LD BC,g_dir_ext
\ 0111 210A00 LD HL,10
\ 0114 39 ADD HL,SP
\ 0115 EB EX DE,HL
\ 0116 CD0000 CALL LWRD FS_Dir
\ 0119 E1 POP HL
\ 011A DD77EC LD (IX-20),A
\ 011D B7 OR A
\ 011E FD23 INC IY
\ 0120 20D8 JR NZ,?0026
\ 0122 ?0024:
199 if(!status)
\ 0122 AF XOR A
\ 0123 DDB6EC OR (IX-20)
\ 0126 2004 JR NZ,?0030
\ 0128 ?0029:
200 return FALSE;
\ 0128 ?0126:
\ 0128 2E00 LD L,0
\ 012A 1824 JR ?0031
\ 012C ?0030:
201
202 g_record_vars.location.DirNo[1] = i;
\ 012C FDE5 PUSH IY
\ 012E E1 POP HL
\ 012F 7D LD A,L
\ 0130 322C00 LD (g_record_vars+12),A
203 g_record_vars.location.dirLayer = 1;
\ 0133 3E01 LD A,1
\ 0135 323700 LD (g_record_vars+23),A
204 g_record_vars.location.ID3buffer = NULL;
\ 0138 210000 LD HL,0
\ 013B 225000 LD (g_record_vars+48),HL
205 status = FS_CD(g_dir_voice);
\ 013E 111000 LD DE,g_dir_voice
\ 0141 CD0000 CALL LWRD FS_CD
206 tmp = FS_GetCurDir();
\ 0144 CD0000 CALL LWRD FS_GetCurDir
207 g_record_vars.location.ClusterNo = tmp;
\ 0147 223300 LD (g_record_vars+19),HL
\ 014A ED433500 LD (g_record_vars+21),BC
208 //g_record_vars.location.filename[0] = '\0';
209
210 return TRUE;
\ 014E 2E01 LD L,1
211 }
\ 0150 ?0031:
\ 0150 DDF9 LD SP,IX
\ 0152 DDE1 POP IX
\ 0154 FDE1 POP IY
\ 0156 D1 POP DE
\ 0157 C1 POP BC
\ 0158 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 015B make_dirname:
212
213 /*
214 ********************************************************************************
215 * Description : 初始化系统设定变量
216 *
217 * Arguments :
218 *
219 * Returns :
220 *
221 * Notes :
222 *
223 ********************************************************************************
224 */
225 void make_dirname(void)
226 {
\ 015B C5 PUSH BC
\ 015C D5 PUSH DE
\ 015D DDE5 PUSH IX
\ 015F 21E0FF LD HL,65504
\ 0162 39 ADD HL,SP
\ 0163 F9 LD SP,HL
227 int result;
228 char Backbuf[32];
229 //fselGetLocation(&g_record_vars.location);
230 if(g_record_vars.location.path[0]==':')
\ 0164 3A3800 LD A,(g_record_vars+24)
\ 0167 FE3A CP 58
\ 0169 200B JR NZ,?0033
\ 016B ?0032:
231 {
232 strcpy(dir_name,"ROOT");
\ 016B 110400 LD DE,?0034
\ 016E 210000 LD HL,dir_name
\ 0171 CD0000 CALL LWRD ?STRCPY_L11
233 }
234 else
\ 0174 185F JR ?0035
\ 0176 ?0033:
235 {
236
237 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 0176 210000 LD HL,0
\ 0179 E5 PUSH HL
\ 017A 0E02 LD C,2
\ 017C 23 INC HL
\ 017D 23 INC HL
\ 017E 39 ADD HL,SP
\ 017F EB EX DE,HL
\ 0180 CD0000 CALL LWRD FS_Backup
\ 0183 E1 POP HL
238 // dir_name[0] = ':';
239 // FS_CD(dir_name);
240 FS_CD("\\");
\ 0184 110200 LD DE,?0011
\ 0187 CD0000 CALL LWRD FS_CD
241 memcpy(dir_name, g_record_vars.location.path, 12);
\ 018A 010C00 LD BC,12
\ 018D 110000 LD DE,dir_name
\ 0190 213800 LD HL,g_record_vars+24
\ 0193 EDB0 LDIR
242 result = FS_GetName(dir_name, 14); //取出长名
\ 0195 0E0E LD C,14
\ 0197 110000 LD DE,dir_name
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -