📄 ui_director2.lst
字号:
\ 0513 09 ADD HL,BC
\ 0514 70 LD (HL),B
321 return 1;
\ 0515 1862 JR ?0061
322
323 }
\ 0517 ?0055:
324 else
325 {
326 tmp=0;
327 tmp = Getdirbuf(num);
\ 0517 210000 LD HL,0
\ 051A 39 ADD HL,SP
\ 051B E5 PUSH HL
\ 051C 59 LD E,C
\ 051D 50 LD D,B
\ 051E 3E00 LD A,BYTE3 Getdirbuf
\ 0520 210000 LD HL,LWRD Getdirbuf
\ 0523 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0526 4D LD C,L
\ 0527 44 LD B,H
\ 0528 E1 POP HL
\ 0529 71 LD (HL),C
\ 052A 23 INC HL
\ 052B 70 LD (HL),B
328
329 fselDirNo[fselDirLayer]=tmp;
\ 052C ED4B0000 LD BC,(fselDirLayer)
\ 0530 0600 LD B,0
\ 0532 210000 LD HL,fselDirNo
\ 0535 09 ADD HL,BC
\ 0536 E5 PUSH HL
\ 0537 210200 LD HL,2
\ 053A 39 ADD HL,SP
\ 053B 46 LD B,(HL)
\ 053C E1 POP HL
\ 053D 70 LD (HL),B
330
331 if(tmp > 0)
\ 053E 210000 LD HL,0
\ 0541 39 ADD HL,SP
\ 0542 78 LD A,B
\ 0543 23 INC HL
\ 0544 B6 OR (HL)
\ 0545 2832 JR Z,?0061
\ 0547 ?0059:
332 {
333 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR);
\ 0547 0E81 LD C,129
\ 0549 C5 PUSH BC
\ 054A 010000 LD BC,Ui_IgnoreExt
\ 054D DDE5 PUSH IX
\ 054F D1 POP DE
\ 0550 CD0000 CALL LWRD FS_Dir
\ 0553 E1 POP HL
334 for(m = 2; m <= tmp; m++)
\ 0554 FD210200 LD IY,2
\ 0558 ?0062:
\ 0558 FDE5 PUSH IY
\ 055A C1 POP BC
\ 055B 210000 LD HL,0
\ 055E 39 ADD HL,SP
\ 055F 56 LD D,(HL)
\ 0560 23 INC HL
\ 0561 66 LD H,(HL)
\ 0562 6A LD L,D
\ 0563 A7 AND A
\ 0564 ED42 SBC HL,BC
\ 0566 3811 JR C,?0061
\ 0568 ?0063:
335 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR_CONT);
\ 0568 0E01 LD C,1
\ 056A C5 PUSH BC
\ 056B 010000 LD BC,Ui_IgnoreExt
\ 056E DDE5 PUSH IX
\ 0570 D1 POP DE
\ 0571 CD0000 CALL LWRD FS_Dir
\ 0574 E1 POP HL
336 }
\ 0575 FD23 INC IY
\ 0577 18DF JR ?0062
\ 0579 ?0061:
\ 0579 ?0060:
337 return 1;
\ 0579 2E01 LD L,1
338 }
\ 057B ?0065:
\ 057B F1 POP AF
\ 057C F1 POP AF
\ 057D DDE1 POP IX
\ 057F FDE1 POP IY
\ 0581 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
339 }
\ 0584 DecodeOnePage:
340
341 /********************************************************************************
342 * Description : decode onepage file record .
343 *
344 * Arguments :
345 * top:first record
346 * bottom:last record
347 * type : show file kind
348 * string_id: language type
349 * Returns :
350 *
351 **type= DIRECTORY_MUSIC/DIRECTORY_VOICE/...
352 *
353 ********************************************************************************/
354 void DecodeOnePage(WORD top,WORD bottom,BYTE type, BYTE string_id)
355 {
\ 0584 FDE5 PUSH IY
\ 0586 DDE5 PUSH IX
\ 0588 C5 PUSH BC
\ 0589 21CCFF LD HL,65484
\ 058C 39 ADD HL,SP
\ 058D F9 LD SP,HL
\ 058E D5 PUSH DE
\ 058F FDE1 POP IY
356 WORD i,NameNum,temp;
357 char Longnamebuf[50];
358 temp=fselTotal;
\ 0591 ED4B0000 LD BC,(fselTotal)
\ 0595 71 LD (HL),C
\ 0596 23 INC HL
\ 0597 70 LD (HL),B
359 fselTotal=GetFileTotalCur(FALSE);
\ 0598 1E00 LD E,0
\ 059A 3E00 LD A,BYTE3 GetFileTotalCur
\ 059C 210000 LD HL,LWRD GetFileTotalCur
\ 059F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05A2 220000 LD (fselTotal),HL
360 for(i = top; i <= bottom; i++)
\ 05A5 FDE5 PUSH IY
\ 05A7 DDE1 POP IX
\ 05A9 ?0067:
\ 05A9 DDE5 PUSH IX
\ 05AB C1 POP BC
\ 05AC 213400 LD HL,52
\ 05AF 39 ADD HL,SP
\ 05B0 56 LD D,(HL)
\ 05B1 23 INC HL
\ 05B2 66 LD H,(HL)
\ 05B3 6A LD L,D
\ 05B4 A7 AND A
\ 05B5 ED42 SBC HL,BC
\ 05B7 3876 JR C,?0066
\ 05B9 ?0068:
361 {
362 if(i>dir_total_num) //文件
\ 05B9 2A4B00 LD HL,(dir_total_num)
\ 05BC ED42 SBC HL,BC
\ 05BE 301B JR NC,?0071
\ 05C0 ?0070:
363 {
364 fselGetByNO(file_name, (i - dir_total_num ));
\ 05C0 ED4B4B00 LD BC,(dir_total_num)
\ 05C4 DDE5 PUSH IX
\ 05C6 E1 POP HL
\ 05C7 A7 AND A
\ 05C8 ED42 SBC HL,BC
\ 05CA 4D LD C,L
\ 05CB 44 LD B,H
\ 05CC 110000 LD DE,file_name
\ 05CF 3E00 LD A,BYTE3 fselGetByNO
\ 05D1 210000 LD HL,LWRD fselGetByNO
\ 05D4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
365 temp_record.filetype= TYPE_FILE;
\ 05D7 3E01 LD A,1
\ 05D9 180C JR ?0086
366 }
367 else //目录
\ 05DB ?0071:
368 {
369 get_dir_name(file_name, i );
\ 05DB 110000 LD DE,file_name
\ 05DE 3E00 LD A,BYTE3 get_dir_name
\ 05E0 21CD04 LD HL,LWRD get_dir_name
\ 05E3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
370 temp_record.filetype= TYPE_DIR;
\ 05E6 AF XOR A
\ 05E7 ?0086:
\ 05E7 320000 LD (temp_record),A
\ 05EA ?0072:
371 }
372 GetLongNameAndSave(file_name,Longnamebuf,string_id); //保存长,短名字到 temp_record
\ 05EA 214000 LD HL,64
\ 05ED 39 ADD HL,SP
\ 05EE 4E LD C,(HL)
\ 05EF C5 PUSH BC
\ 05F0 210400 LD HL,4
\ 05F3 39 ADD HL,SP
\ 05F4 4D LD C,L
\ 05F5 44 LD B,H
\ 05F6 110000 LD DE,file_name
\ 05F9 3E00 LD A,BYTE3 GetLongNameAndSave
\ 05FB 210000 LD HL,LWRD GetLongNameAndSave
\ 05FE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0601 E1 POP HL
373 SaveOtherPara(); //保存其他目录结构相关参数到 temp_record
\ 0602 3E00 LD A,BYTE3 SaveOtherPara
\ 0604 216900 LD HL,LWRD SaveOtherPara
\ 0607 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
374
375 TransOneRecord(OnePageRecord+i-top,&temp_record); //将temp_record的记录数据保存到idm中
\ 060A FDE5 PUSH IY
\ 060C D1 POP DE
\ 060D DDE5 PUSH IX
\ 060F E1 POP HL
\ 0610 A7 AND A
\ 0611 ED52 SBC HL,DE
\ 0613 EB EX DE,HL
\ 0614 014B00 LD BC,75
\ 0617 CD0000 CALL LWRD ?S_MUL_L02
\ 061A 210000 LD HL,OnePageRecord
\ 061D 19 ADD HL,DE
\ 061E EB EX DE,HL
\ 061F 3E00 LD A,BYTE3 TransOneRecord
\ 0621 218D00 LD HL,LWRD TransOneRecord
\ 0624 010000 LD BC,temp_record
\ 0627 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 062A DD23 INC IX
\ 062C C3A905 JP LWRD ?0067
\ 062F ?0066:
376 }
377 fselTotal=temp;
\ 062F 210000 LD HL,0
\ 0632 39 ADD HL,SP
\ 0633 46 LD B,(HL)
\ 0634 23 INC HL
\ 0635 66 LD H,(HL)
\ 0636 68 LD L,B
\ 0637 220000 LD (fselTotal),HL
378 }
\ 063A 213600 LD HL,54
\ 063D 39 ADD HL,SP
\ 063E F9 LD SP,HL
\ 063F DDE1 POP IX
\ 0641 FDE1 POP IY
\ 0643 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CSTR
\ 0000 ?0047:
\ 0000 5C00 DEFB 92,0
\ 0000 RSEG DEC_COM_FSL_D
\ 0000 temp_record:
\ 004B DEFS 75
\ 004B dir_total_num:
\ 004D DEFS 2
\ 004D file_total_num:
\ 004F DEFS 2
\ 004F list_total_num:
\ 0051 DEFS 2
\ 0051 list_active:
\ 0053 DEFS 2
\ 0053 cur_group:
\ 0055 DEFS 2
\ 0000 RSEG IDM_COM_FSL_D
\ 0000 OnePageRecord:
\ 01C2 DEFS 450
\ 01C2 dirbuf:
\ 023F DEFS 125
\ 0000 RSEG DEC_COM_FSL_R
\ 0000 Ui_IgnoreExt:
\ 0000 2A2020 DEFB '* '
\ 0003 00 DEFB 0
\ 0004 END
Errors: none
Warnings: none
Code size: 1606
Constant size: 6
Static variable size: Data(660) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -