📄 ui_director2.lst
字号:
246
247 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 03A6 210000 LD HL,0
\ 03A9 E5 PUSH HL
\ 03AA 0E02 LD C,2
\ 03AC 2E06 LD L,6
\ 03AE 39 ADD HL,SP
\ 03AF EB EX DE,HL
\ 03B0 CD0000 CALL LWRD FS_Backup
\ 03B3 E1 POP HL
248 dir_total_num=count_dir_num();
\ 03B4 3E00 LD A,BYTE3 count_dir_num
\ 03B6 210000 LD HL,LWRD count_dir_num
\ 03B9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03BC 224B00 LD (dir_total_num),HL
249 file_total_num=GetFileTotalCur(FALSE);
\ 03BF 1E00 LD E,0
\ 03C1 3E00 LD A,BYTE3 GetFileTotalCur
\ 03C3 210000 LD HL,LWRD GetFileTotalCur
\ 03C6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03C9 224D00 LD (file_total_num),HL
250 list_total_num=dir_total_num+file_total_num+1;
\ 03CC ED4B4B00 LD BC,(dir_total_num)
\ 03D0 09 ADD HL,BC
\ 03D1 23 INC HL
\ 03D2 224F00 LD (list_total_num),HL
251 fselTotal=file_total_num;
\ 03D5 2A4D00 LD HL,(file_total_num)
\ 03D8 220000 LD (fselTotal),HL
252
253 for(i = 1; i <= dir_total_num; i++)
\ 03DB DD210100 LD IX,1
\ 03DF 210000 LD HL,0
\ 03E2 39 ADD HL,SP
\ 03E3 3601 LD (HL),1
\ 03E5 23 INC HL
\ 03E6 3600 LD (HL),0
\ 03E8 ?0034:
\ 03E8 2B DEC HL
\ 03E9 4E LD C,(HL)
\ 03EA 23 INC HL
\ 03EB 46 LD B,(HL)
\ 03EC 2A4B00 LD HL,(dir_total_num)
\ 03EF A7 AND A
\ 03F0 ED42 SBC HL,BC
\ 03F2 DAB104 JP C,?0033
\ 03F5 ?0035:
\ 03F5 ?0038:
254 {
255 while(1)
256 {
257 if(tmp == 1)
\ 03F5 DDE5 PUSH IX
\ 03F7 E1 POP HL
\ 03F8 3E01 LD A,1
\ 03FA AD XOR L
\ 03FB B4 OR H
\ 03FC 200D JR NZ,?0041
\ 03FE ?0040:
258 FS_Dir(file_name, Ui_IgnoreExt, FS_DIR_DIR);
\ 03FE 0E81 LD C,129
\ 0400 C5 PUSH BC
\ 0401 010000 LD BC,Ui_IgnoreExt
\ 0404 110000 LD DE,file_name
\ 0407 CD0000 CALL LWRD FS_Dir
\ 040A E1 POP HL
\ 040B ?0041:
259 if(tmp > 1)
\ 040B DDE5 PUSH IX
\ 040D C1 POP BC
\ 040E 210100 LD HL,1
\ 0411 A7 AND A
\ 0412 ED42 SBC HL,BC
\ 0414 300D JR NC,?0043
\ 0416 ?0042:
260 FS_Dir(file_name, Ui_IgnoreExt, FS_DIR_DIR_CONT);
\ 0416 0E01 LD C,1
\ 0418 C5 PUSH BC
\ 0419 010000 LD BC,Ui_IgnoreExt
\ 041C 110000 LD DE,file_name
\ 041F CD0000 CALL LWRD FS_Dir
\ 0422 E1 POP HL
\ 0423 ?0043:
261 tmp++;
262 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 0423 210000 LD HL,0
\ 0426 E5 PUSH HL
\ 0427 0E02 LD C,2
\ 0429 2E06 LD L,6
\ 042B 39 ADD HL,SP
\ 042C EB EX DE,HL
\ 042D CD0000 CALL LWRD FS_Backup
\ 0430 E1 POP HL
263 total = GetFileTotal(file_name, TRUE);
\ 0431 0E01 LD C,1
\ 0433 110000 LD DE,file_name
\ 0436 3E00 LD A,BYTE3 GetFileTotal
\ 0438 210000 LD HL,LWRD GetFileTotal
\ 043B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 043E E5 PUSH HL
\ 043F FDE1 POP IY
264 FS_CD(file_name);
\ 0441 110000 LD DE,file_name
\ 0444 CD0000 CALL LWRD FS_CD
265 if (ToDirEntry(file_name,1))
\ 0447 010100 LD BC,1
\ 044A 110000 LD DE,file_name
\ 044D 3E00 LD A,BYTE3 ToDirEntry
\ 044F 210000 LD HL,LWRD ToDirEntry
\ 0452 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0455 2C INC L
\ 0456 2D DEC L
\ 0457 210200 LD HL,2
\ 045A 39 ADD HL,SP
\ 045B DD23 INC IX
\ 045D 2804 JR Z,?0045
\ 045F ?0044:
266 {
267 direxist=1;
\ 045F 3601 LD (HL),1
268 }
269 else
\ 0461 1802 JR ?0046
\ 0463 ?0045:
270 {
271 direxist=0;
\ 0463 3600 LD (HL),0
\ 0465 ?0046:
272 }
273 output8(0x4e,input8(0x4e)|0x8);
\ 0465 DB4E IN A,(78)
\ 0467 CBDF SET 3,A
\ 0469 D34E OUT (78),A
274 FS_CD("\\");
\ 046B 110000 LD DE,?0047
\ 046E CD0000 CALL LWRD FS_CD
275
276 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 0471 210000 LD HL,0
\ 0474 E5 PUSH HL
\ 0475 0E02 LD C,2
\ 0477 2E06 LD L,6
\ 0479 39 ADD HL,SP
\ 047A EB EX DE,HL
\ 047B CD0000 CALL LWRD FS_Restore
\ 047E E1 POP HL
277 output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
\ 047F DB4E IN A,(78)
\ 0481 CBDF SET 3,A
\ 0483 D34E OUT (78),A
278 if((total != 0)||(direxist))
\ 0485 FDE5 PUSH IY
\ 0487 E1 POP HL
\ 0488 7D LD A,L
\ 0489 B4 OR H
\ 048A 2008 JR NZ,?0050
\ 048C 210200 LD HL,2
\ 048F 39 ADD HL,SP
\ 0490 B6 OR (HL)
\ 0491 CAF503 JP Z,?0035
\ 0494 ?0050:
\ 0494 ?0051:
\ 0494 ?0048:
279 {
280 break;
\ 0494 ?0049:
\ 0494 ?0037:
281 }
282 }
283 Setdirbuf( tmp - 1 );
\ 0494 21FFFF LD HL,65535
\ 0497 DDE5 PUSH IX
\ 0499 C1 POP BC
\ 049A 09 ADD HL,BC
\ 049B EB EX DE,HL
\ 049C 3E00 LD A,BYTE3 Setdirbuf
\ 049E 210000 LD HL,LWRD Setdirbuf
\ 04A1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04A4 210000 LD HL,0
\ 04A7 39 ADD HL,SP
\ 04A8 34 INC (HL)
\ 04A9 23 INC HL
\ 04AA C2E803 JP NZ,?0034
\ 04AD 34 INC (HL)
\ 04AE C3E803 JP LWRD ?0034
\ 04B1 ?0033:
284 }
285 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 04B1 210000 LD HL,0
\ 04B4 E5 PUSH HL
\ 04B5 0E02 LD C,2
\ 04B7 2E06 LD L,6
\ 04B9 39 ADD HL,SP
\ 04BA EB EX DE,HL
\ 04BB CD0000 CALL LWRD FS_Restore
\ 04BE E1 POP HL
286 }
\ 04BF 212400 LD HL,36
\ 04C2 39 ADD HL,SP
\ 04C3 F9 LD SP,HL
\ 04C4 DDE1 POP IX
\ 04C6 FDE1 POP IY
\ 04C8 D1 POP DE
\ 04C9 C1 POP BC
\ 04CA C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 04CD get_dir_name:
287
288 /********************************************************************************
289 * Description : 获取第N个有效的目录
290 *
291 * Arguments :
292 *
293 * Returns :
294 *
295 * Notes :
296 *
297 ********************************************************************************
298 */
299 bool get_dir_name(char *file, WORD num)
300 {
\ 04CD FDE5 PUSH IY
\ 04CF DDE5 PUSH IX
\ 04D1 C5 PUSH BC
\ 04D2 F5 PUSH AF
\ 04D3 D5 PUSH DE
\ 04D4 DDE1 POP IX
301
302 WORD m, tmp,total_file;
303 if(num>dir_total_num)
\ 04D6 2A4B00 LD HL,(dir_total_num)
\ 04D9 A7 AND A
\ 04DA ED42 SBC HL,BC
\ 04DC 3005 JR NC,?0053
\ 04DE ?0052:
304 return 0;
\ 04DE 2E00 LD L,0
\ 04E0 C37B05 JP LWRD ?0065
\ 04E3 ?0053:
305 if(num == 0) //根目录或目录首
\ 04E3 79 LD A,C
\ 04E4 B0 OR B
\ 04E5 2030 JR NZ,?0055
\ 04E7 ?0054:
306 {
307 if(fselDirLayer==0)
\ 04E7 3A0000 LD A,(fselDirLayer)
\ 04EA B7 OR A
\ 04EB 2015 JR NZ,?0057
\ 04ED ?0056:
308 {
309 file[0] = 'R';
\ 04ED DD360052 LD (IX+0),82
310 file[1] = 'O';
\ 04F1 DD36014F LD (IX+1),79
311 file[2] = 'O';
\ 04F5 DD36024F LD (IX+2),79
312 file[3] = 'T';
\ 04F9 DD360354 LD (IX+3),84
313 file[4] = 0;
\ 04FD DD7704 LD (IX+4),A
314 }
315 else
\ 0500 1808 JR ?0058
\ 0502 ?0057:
316 {
317 file[0] = '\\';
\ 0502 DD36005C LD (IX+0),92
318 file[1] = 0;
\ 0506 DD360100 LD (IX+1),0
\ 050A ?0058:
319 }
320 fselDirNo[fselDirLayer]=0;
\ 050A ED4B0000 LD BC,(fselDirLayer)
\ 050E 0600 LD B,0
\ 0510 210000 LD HL,fselDirNo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -