📄 ui_director2.lst
字号:
325 {
326 file[0] = '\\';
\ 04EF DD36005C LD (IX+0),92
327 file[1] = 0;
\ 04F3 DD360100 LD (IX+1),0
\ 04F7 ?0058:
328 }
329 fselDirNo[fselDirLayer]=0;
\ 04F7 ED4B0000 LD BC,(fselDirLayer)
\ 04FB 0600 LD B,0
\ 04FD 210000 LD HL,fselDirNo
\ 0500 09 ADD HL,BC
\ 0501 70 LD (HL),B
330 return 1;
\ 0502 185C JR ?0061
331
332 }
\ 0504 ?0055:
333 else
334 {
335 tmp=0;
336 tmp = Getdirbuf(num);
\ 0504 59 LD E,C
\ 0505 50 LD D,B
\ 0506 3E00 LD A,BYTE3 Getdirbuf
\ 0508 210000 LD HL,LWRD Getdirbuf
\ 050B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 050E E5 PUSH HL
\ 050F FDE1 POP IY
337
338 fselDirNo[fselDirLayer]=tmp;
\ 0511 ED4B0000 LD BC,(fselDirLayer)
\ 0515 0600 LD B,0
\ 0517 210000 LD HL,fselDirNo
\ 051A 09 ADD HL,BC
\ 051B FDE5 PUSH IY
\ 051D C1 POP BC
\ 051E 71 LD (HL),C
339
340 if(tmp > 0)
\ 051F FDE5 PUSH IY
\ 0521 E1 POP HL
\ 0522 7D LD A,L
\ 0523 B4 OR H
\ 0524 283A JR Z,?0061
\ 0526 ?0059:
341 {
342 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR);
\ 0526 0E81 LD C,129
\ 0528 C5 PUSH BC
\ 0529 010000 LD BC,Ui_IgnoreExt
\ 052C DDE5 PUSH IX
\ 052E D1 POP DE
\ 052F CD0000 CALL LWRD FS_Dir
\ 0532 E1 POP HL
343 for(m = 2; m <= tmp; m++)
\ 0533 210000 LD HL,0
\ 0536 39 ADD HL,SP
\ 0537 3602 LD (HL),2
\ 0539 23 INC HL
\ 053A 3600 LD (HL),0
\ 053C ?0062:
\ 053C 2B DEC HL
\ 053D 4E LD C,(HL)
\ 053E 23 INC HL
\ 053F 46 LD B,(HL)
\ 0540 FDE5 PUSH IY
\ 0542 E1 POP HL
\ 0543 A7 AND A
\ 0544 ED42 SBC HL,BC
\ 0546 3818 JR C,?0061
\ 0548 ?0063:
344 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR_CONT);
\ 0548 0E01 LD C,1
\ 054A C5 PUSH BC
\ 054B 010000 LD BC,Ui_IgnoreExt
\ 054E DDE5 PUSH IX
\ 0550 D1 POP DE
\ 0551 CD0000 CALL LWRD FS_Dir
\ 0554 E1 POP HL
\ 0555 210000 LD HL,0
\ 0558 39 ADD HL,SP
\ 0559 34 INC (HL)
\ 055A 23 INC HL
\ 055B 20DF JR NZ,?0062
\ 055D 34 INC (HL)
345 }
\ 055E 18DC JR ?0062
\ 0560 ?0061:
\ 0560 ?0060:
346 return 1;
\ 0560 2E01 LD L,1
347 }
\ 0562 ?0065:
\ 0562 F1 POP AF
\ 0563 F1 POP AF
\ 0564 DDE1 POP IX
\ 0566 FDE1 POP IY
\ 0568 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
348 }
\ 056B DecodeOnePage:
349
350 /********************************************************************************
351 * Description : decode onepage file record .
352 *
353 * Arguments :
354 * top:first record
355 * bottom:last record
356 * type : show file kind
357 * string_id: language type
358 * Returns :
359 *
360 **type= DIRECTORY_MUSIC/DIRECTORY_VOICE/...
361 *
362 ********************************************************************************/
363 void DecodeOnePage(WORD top,WORD bottom,BYTE type, BYTE string_id)
364 {
\ 056B CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 056E CEFF DEFW -50
\ 0570 FDE5 PUSH IY
365 WORD i,NameNum,temp;
366 char Longnamebuf[50];
367 temp=fselTotal;
\ 0572 FD2A0000 LD IY,(fselTotal)
368 fselTotal=GetFileTotalCur(FALSE);
\ 0576 1E00 LD E,0
\ 0578 3E00 LD A,BYTE3 GetFileTotalCur
\ 057A 210000 LD HL,LWRD GetFileTotalCur
\ 057D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0580 220000 LD (fselTotal),HL
369 for(i = top; i <= bottom; i++)
\ 0583 DD5E02 LD E,(IX+2)
\ 0586 DD5603 LD D,(IX+3)
\ 0589 ?0067:
\ 0589 DD6E04 LD L,(IX+4)
\ 058C DD6605 LD H,(IX+5)
\ 058F A7 AND A
\ 0590 ED52 SBC HL,DE
\ 0592 3873 JR C,?0066
\ 0594 ?0068:
370 {
371 if(i>dir_total_num) //文件
\ 0594 2A4B00 LD HL,(dir_total_num)
\ 0597 ED52 SBC HL,DE
\ 0599 D5 PUSH DE
\ 059A 301A JR NC,?0071
\ 059C ?0070:
372 {
373 fselGetByNO(file_name, (i - dir_total_num ));
\ 059C ED4B4B00 LD BC,(dir_total_num)
\ 05A0 EB EX DE,HL
\ 05A1 A7 AND A
\ 05A2 ED42 SBC HL,BC
\ 05A4 4D LD C,L
\ 05A5 44 LD B,H
\ 05A6 110000 LD DE,file_name
\ 05A9 3E00 LD A,BYTE3 fselGetByNO
\ 05AB 210000 LD HL,LWRD fselGetByNO
\ 05AE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05B1 D1 POP DE
374 temp_record.filetype= TYPE_FILE;
\ 05B2 3E01 LD A,1
\ 05B4 180F JR ?0085
375 }
376 else //目录
\ 05B6 ?0071:
377 {
378 get_dir_name(file_name, i );
\ 05B6 4B LD C,E
\ 05B7 42 LD B,D
\ 05B8 110000 LD DE,file_name
\ 05BB 3E00 LD A,BYTE3 get_dir_name
\ 05BD 21BA04 LD HL,LWRD get_dir_name
\ 05C0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05C3 D1 POP DE
379 temp_record.filetype= TYPE_DIR;
\ 05C4 AF XOR A
\ 05C5 ?0085:
\ 05C5 320000 LD (temp_record),A
\ 05C8 ?0072:
380 }
381 GetLongNameAndSave(file_name,Longnamebuf,string_id); //保存长,短名字到 temp_record
\ 05C8 D5 PUSH DE
\ 05C9 DD6E0C LD L,(IX+12)
\ 05CC E5 PUSH HL
\ 05CD 210600 LD HL,6
\ 05D0 39 ADD HL,SP
\ 05D1 4D LD C,L
\ 05D2 44 LD B,H
\ 05D3 110000 LD DE,file_name
\ 05D6 3E00 LD A,BYTE3 GetLongNameAndSave
\ 05D8 210000 LD HL,LWRD GetLongNameAndSave
\ 05DB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05DE E1 POP HL
\ 05DF D1 POP DE
382 SaveOtherPara(); //保存其他目录结构相关参数到 temp_record
\ 05E0 3E00 LD A,BYTE3 SaveOtherPara
\ 05E2 216900 LD HL,LWRD SaveOtherPara
\ 05E5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
383
384 TransOneRecord(OnePageRecord+i-top,&temp_record); //将temp_record的记录数据保存到idm中
\ 05E8 D5 PUSH DE
\ 05E9 DD4E02 LD C,(IX+2)
\ 05EC DD4603 LD B,(IX+3)
\ 05EF EB EX DE,HL
\ 05F0 CD8203 CALL LWRD ?0093
\ 05F3 210000 LD HL,OnePageRecord
\ 05F6 19 ADD HL,DE
\ 05F7 EB EX DE,HL
\ 05F8 3E00 LD A,BYTE3 TransOneRecord
\ 05FA 218D00 LD HL,LWRD TransOneRecord
\ 05FD 010000 LD BC,temp_record
\ 0600 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0603 D1 POP DE
\ 0604 13 INC DE
\ 0605 1882 JR ?0067
\ 0607 ?0066:
385 }
386 fselTotal=temp;
\ 0607 FD220000 LD (fselTotal),IY
387 }
\ 060B FDE1 POP IY
\ 060D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0000 RSEG CSTR
\ 0000 ?0047:
\ 0000 5C00 DEFB 92,0
\ 0000 RSEG CONST
\ 0000 file_pos:
\ 0000 77 DEFB 'w'
\ 0001 62 DEFB 'b'
\ 0002 4D DEFB 'M'
\ 0003 38 DEFB '8'
\ 0004 23 DEFB '#'
\ 0005 0E DEFB 14
\ 0006 file_bck_pic:
\ 0006 6A00 DEFW 106
\ 0008 6900 DEFW 105
\ 000A 6800 DEFW 104
\ 000C 6700 DEFW 103
\ 000E 6600 DEFW 102
\ 0010 6500 DEFW 101
\ 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: 1552
Constant size: 24
Static variable size: Data(660) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -