📄 ui_directory2_scroll.lst
字号:
\ 0546 E5 PUSH HL
\ 0547 FDE1 POP IY
282 FS_CD(file_name);
\ 0549 110000 LD DE,file_name
\ 054C CD0000 CALL LWRD FS_CD
283 if (ToDirEntry(file_name,1))
\ 054F 010100 LD BC,1
\ 0552 110000 LD DE,file_name
\ 0555 3E00 LD A,BYTE3 ToDirEntry
\ 0557 210000 LD HL,LWRD ToDirEntry
\ 055A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 055D 2C INC L
\ 055E 2D DEC L
\ 055F 210200 LD HL,2
\ 0562 39 ADD HL,SP
\ 0563 DD23 INC IX
\ 0565 2804 JR Z,?0058
\ 0567 ?0057:
284 {
285 direxist=1;
\ 0567 3601 LD (HL),1
286 }
287 else
\ 0569 1802 JR ?0059
\ 056B ?0058:
288 {
289 direxist=0;
\ 056B 3600 LD (HL),0
\ 056D ?0059:
290 }
291 output8(0x4e,input8(0x4e)|0x8);
\ 056D DB4E IN A,(78)
\ 056F CBDF SET 3,A
\ 0571 D34E OUT (78),A
292 FS_CD("\\");
\ 0573 110000 LD DE,?0060
\ 0576 CD0000 CALL LWRD FS_CD
293
294 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 0579 210000 LD HL,0
\ 057C E5 PUSH HL
\ 057D 0E02 LD C,2
\ 057F 2E06 LD L,6
\ 0581 39 ADD HL,SP
\ 0582 EB EX DE,HL
\ 0583 CD0000 CALL LWRD FS_Restore
\ 0586 E1 POP HL
295 output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
\ 0587 DB4E IN A,(78)
\ 0589 CBDF SET 3,A
\ 058B D34E OUT (78),A
296 if((total != 0)||(direxist))
\ 058D FDE5 PUSH IY
\ 058F E1 POP HL
\ 0590 7D LD A,L
\ 0591 B4 OR H
\ 0592 2008 JR NZ,?0063
\ 0594 210200 LD HL,2
\ 0597 39 ADD HL,SP
\ 0598 B6 OR (HL)
\ 0599 CAFD04 JP Z,?0048
\ 059C ?0063:
\ 059C ?0064:
\ 059C ?0061:
297 {
298 break;
\ 059C ?0062:
\ 059C ?0050:
299 }
300 }
301 Setdirbuf( tmp - 1 );
\ 059C 21FFFF LD HL,65535
\ 059F DDE5 PUSH IX
\ 05A1 C1 POP BC
\ 05A2 09 ADD HL,BC
\ 05A3 EB EX DE,HL
\ 05A4 3E00 LD A,BYTE3 Setdirbuf
\ 05A6 210000 LD HL,LWRD Setdirbuf
\ 05A9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05AC 210000 LD HL,0
\ 05AF 39 ADD HL,SP
\ 05B0 34 INC (HL)
\ 05B1 23 INC HL
\ 05B2 C2F004 JP NZ,?0047
\ 05B5 34 INC (HL)
\ 05B6 C3F004 JP LWRD ?0047
\ 05B9 ?0046:
302 }
303 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 05B9 210000 LD HL,0
\ 05BC E5 PUSH HL
\ 05BD 0E02 LD C,2
\ 05BF 2E06 LD L,6
\ 05C1 39 ADD HL,SP
\ 05C2 EB EX DE,HL
\ 05C3 CD0000 CALL LWRD FS_Restore
\ 05C6 E1 POP HL
304 }
\ 05C7 212400 LD HL,36
\ 05CA 39 ADD HL,SP
\ 05CB F9 LD SP,HL
\ 05CC DDE1 POP IX
\ 05CE FDE1 POP IY
\ 05D0 D1 POP DE
\ 05D1 C1 POP BC
\ 05D2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 05D5 get_dir_name:
305
306 /********************************************************************************
307 * Description : 获取第N个有效的目录
308 *
309 * Arguments :
310 *
311 * Returns :
312 *
313 * Notes :
314 *
315 ********************************************************************************
316 */
317 bool get_dir_name(char *file, WORD num)
318 {
\ 05D5 FDE5 PUSH IY
\ 05D7 DDE5 PUSH IX
\ 05D9 C5 PUSH BC
\ 05DA F5 PUSH AF
\ 05DB D5 PUSH DE
\ 05DC DDE1 POP IX
319
320 WORD m, tmp,total_file;
321 if(num>dir_total_num)
\ 05DE 2A4B00 LD HL,(dir_total_num)
\ 05E1 A7 AND A
\ 05E2 ED42 SBC HL,BC
\ 05E4 3005 JR NC,?0066
\ 05E6 ?0065:
322 return 0;
\ 05E6 2E00 LD L,0
\ 05E8 C38306 JP LWRD ?0078
\ 05EB ?0066:
323 if(num == 0) //根目录或目录首
\ 05EB 79 LD A,C
\ 05EC B0 OR B
\ 05ED 2030 JR NZ,?0068
\ 05EF ?0067:
324 {
325 if(fselDirLayer==0)
\ 05EF 3A0000 LD A,(fselDirLayer)
\ 05F2 B7 OR A
\ 05F3 2015 JR NZ,?0070
\ 05F5 ?0069:
326 {
327 file[0] = 'R';
\ 05F5 DD360052 LD (IX+0),82
328 file[1] = 'O';
\ 05F9 DD36014F LD (IX+1),79
329 file[2] = 'O';
\ 05FD DD36024F LD (IX+2),79
330 file[3] = 'T';
\ 0601 DD360354 LD (IX+3),84
331 file[4] = 0;
\ 0605 DD7704 LD (IX+4),A
332 }
333 else
\ 0608 1808 JR ?0071
\ 060A ?0070:
334 {
335 file[0] = '\\';
\ 060A DD36005C LD (IX+0),92
336 file[1] = 0;
\ 060E DD360100 LD (IX+1),0
\ 0612 ?0071:
337 }
338 fselDirNo[fselDirLayer]=0;
\ 0612 ED4B0000 LD BC,(fselDirLayer)
\ 0616 0600 LD B,0
\ 0618 210000 LD HL,fselDirNo
\ 061B 09 ADD HL,BC
\ 061C 70 LD (HL),B
339 return 1;
\ 061D 1862 JR ?0074
340
341 }
\ 061F ?0068:
342 else
343 {
344 tmp=0;
345 tmp = Getdirbuf(num);
\ 061F 210000 LD HL,0
\ 0622 39 ADD HL,SP
\ 0623 E5 PUSH HL
\ 0624 59 LD E,C
\ 0625 50 LD D,B
\ 0626 3E00 LD A,BYTE3 Getdirbuf
\ 0628 210000 LD HL,LWRD Getdirbuf
\ 062B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 062E 4D LD C,L
\ 062F 44 LD B,H
\ 0630 E1 POP HL
\ 0631 71 LD (HL),C
\ 0632 23 INC HL
\ 0633 70 LD (HL),B
346
347 fselDirNo[fselDirLayer]=tmp;
\ 0634 ED4B0000 LD BC,(fselDirLayer)
\ 0638 0600 LD B,0
\ 063A 210000 LD HL,fselDirNo
\ 063D 09 ADD HL,BC
\ 063E E5 PUSH HL
\ 063F 210200 LD HL,2
\ 0642 39 ADD HL,SP
\ 0643 46 LD B,(HL)
\ 0644 E1 POP HL
\ 0645 70 LD (HL),B
348
349 if(tmp > 0)
\ 0646 210000 LD HL,0
\ 0649 39 ADD HL,SP
\ 064A 78 LD A,B
\ 064B 23 INC HL
\ 064C B6 OR (HL)
\ 064D 2832 JR Z,?0074
\ 064F ?0072:
350 {
351 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR);
\ 064F 0E81 LD C,129
\ 0651 C5 PUSH BC
\ 0652 010000 LD BC,Ui_IgnoreExt
\ 0655 DDE5 PUSH IX
\ 0657 D1 POP DE
\ 0658 CD0000 CALL LWRD FS_Dir
\ 065B E1 POP HL
352 for(m = 2; m <= tmp; m++)
\ 065C FD210200 LD IY,2
\ 0660 ?0075:
\ 0660 FDE5 PUSH IY
\ 0662 C1 POP BC
\ 0663 210000 LD HL,0
\ 0666 39 ADD HL,SP
\ 0667 56 LD D,(HL)
\ 0668 23 INC HL
\ 0669 66 LD H,(HL)
\ 066A 6A LD L,D
\ 066B A7 AND A
\ 066C ED42 SBC HL,BC
\ 066E 3811 JR C,?0074
\ 0670 ?0076:
353 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR_CONT);
\ 0670 0E01 LD C,1
\ 0672 C5 PUSH BC
\ 0673 010000 LD BC,Ui_IgnoreExt
\ 0676 DDE5 PUSH IX
\ 0678 D1 POP DE
\ 0679 CD0000 CALL LWRD FS_Dir
\ 067C E1 POP HL
354 }
\ 067D FD23 INC IY
\ 067F 18DF JR ?0075
\ 0681 ?0074:
\ 0681 ?0073:
355 return 1;
\ 0681 2E01 LD L,1
356 }
\ 0683 ?0078:
\ 0683 F1 POP AF
\ 0684 F1 POP AF
\ 0685 DDE1 POP IX
\ 0687 FDE1 POP IY
\ 0689 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
357 }
\ 068C DecodeOnePage:
358
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -