ui_director2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,325 行 · 第 1/5 页
LST
1,325 行
312 file[3] = 'T';
\ 04EC DD360354 LD (IX+3),84
313 file[4] = 0;
\ 04F0 DD7704 LD (IX+4),A
314 }
315 else
\ 04F3 1808 JR ?0058
\ 04F5 ?0057:
316 {
317 file[0] = '\\';
\ 04F5 DD36005C LD (IX+0),92
318 file[1] = 0;
\ 04F9 DD360100 LD (IX+1),0
\ 04FD ?0058:
319 }
320 fselDirNo[fselDirLayer]=0;
\ 04FD ED4B0000 LD BC,(fselDirLayer)
\ 0501 0600 LD B,0
\ 0503 210000 LD HL,fselDirNo
\ 0506 09 ADD HL,BC
\ 0507 70 LD (HL),B
321 return 1;
\ 0508 185C JR ?0061
322
323 }
\ 050A ?0055:
324 else
325 {
326 tmp=0;
327 tmp = Getdirbuf(num);
\ 050A 59 LD E,C
\ 050B 50 LD D,B
\ 050C 3E00 LD A,BYTE3 Getdirbuf
\ 050E 210000 LD HL,LWRD Getdirbuf
\ 0511 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0514 E5 PUSH HL
\ 0515 FDE1 POP IY
328
329 fselDirNo[fselDirLayer]=tmp;
\ 0517 ED4B0000 LD BC,(fselDirLayer)
\ 051B 0600 LD B,0
\ 051D 210000 LD HL,fselDirNo
\ 0520 09 ADD HL,BC
\ 0521 FDE5 PUSH IY
\ 0523 C1 POP BC
\ 0524 71 LD (HL),C
330
331 if(tmp > 0)
\ 0525 FDE5 PUSH IY
\ 0527 E1 POP HL
\ 0528 7D LD A,L
\ 0529 B4 OR H
\ 052A 283A JR Z,?0061
\ 052C ?0059:
332 {
333 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR);
\ 052C 0E81 LD C,129
\ 052E C5 PUSH BC
\ 052F 010000 LD BC,Ui_IgnoreExt
\ 0532 DDE5 PUSH IX
\ 0534 D1 POP DE
\ 0535 CD0000 CALL LWRD FS_Dir
\ 0538 E1 POP HL
334 for(m = 2; m <= tmp; m++)
\ 0539 210000 LD HL,0
\ 053C 39 ADD HL,SP
\ 053D 3602 LD (HL),2
\ 053F 23 INC HL
\ 0540 3600 LD (HL),0
\ 0542 ?0062:
\ 0542 2B DEC HL
\ 0543 4E LD C,(HL)
\ 0544 23 INC HL
\ 0545 46 LD B,(HL)
\ 0546 FDE5 PUSH IY
\ 0548 E1 POP HL
\ 0549 A7 AND A
\ 054A ED42 SBC HL,BC
\ 054C 3818 JR C,?0061
\ 054E ?0063:
335 FS_Dir(file, Ui_IgnoreExt, FS_DIR_DIR_CONT);
\ 054E 0E01 LD C,1
\ 0550 C5 PUSH BC
\ 0551 010000 LD BC,Ui_IgnoreExt
\ 0554 DDE5 PUSH IX
\ 0556 D1 POP DE
\ 0557 CD0000 CALL LWRD FS_Dir
\ 055A E1 POP HL
\ 055B 210000 LD HL,0
\ 055E 39 ADD HL,SP
\ 055F 34 INC (HL)
\ 0560 23 INC HL
\ 0561 20DF JR NZ,?0062
\ 0563 34 INC (HL)
336 }
\ 0564 18DC JR ?0062
\ 0566 ?0061:
\ 0566 ?0060:
337 return 1;
\ 0566 2E01 LD L,1
338 }
\ 0568 ?0065:
\ 0568 F1 POP AF
\ 0569 F1 POP AF
\ 056A DDE1 POP IX
\ 056C FDE1 POP IY
\ 056E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
339 }
\ 0571 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 {
\ 0571 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0574 CEFF DEFW -50
\ 0576 FDE5 PUSH IY
356 WORD i,NameNum,temp;
357 char Longnamebuf[50];
358 temp=fselTotal;
\ 0578 FD2A0000 LD IY,(fselTotal)
359 fselTotal=GetFileTotalCur(FALSE);
\ 057C 1E00 LD E,0
\ 057E 3E00 LD A,BYTE3 GetFileTotalCur
\ 0580 210000 LD HL,LWRD GetFileTotalCur
\ 0583 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0586 220000 LD (fselTotal),HL
360 for(i = top; i <= bottom; i++)
\ 0589 DD5E02 LD E,(IX+2)
\ 058C DD5603 LD D,(IX+3)
\ 058F ?0067:
\ 058F DD6E04 LD L,(IX+4)
\ 0592 DD6605 LD H,(IX+5)
\ 0595 A7 AND A
\ 0596 ED52 SBC HL,DE
\ 0598 3873 JR C,?0066
\ 059A ?0068:
361 {
362 if(i>dir_total_num) //文件
\ 059A 2A4B00 LD HL,(dir_total_num)
\ 059D ED52 SBC HL,DE
\ 059F D5 PUSH DE
\ 05A0 301A JR NC,?0071
\ 05A2 ?0070:
363 {
364 fselGetByNO(file_name, (i - dir_total_num ));
\ 05A2 ED4B4B00 LD BC,(dir_total_num)
\ 05A6 EB EX DE,HL
\ 05A7 A7 AND A
\ 05A8 ED42 SBC HL,BC
\ 05AA 4D LD C,L
\ 05AB 44 LD B,H
\ 05AC 110000 LD DE,file_name
\ 05AF 3E00 LD A,BYTE3 fselGetByNO
\ 05B1 210000 LD HL,LWRD fselGetByNO
\ 05B4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05B7 D1 POP DE
365 temp_record.filetype= TYPE_FILE;
\ 05B8 3E01 LD A,1
\ 05BA 180F JR ?0086
366 }
367 else //目录
\ 05BC ?0071:
368 {
369 get_dir_name(file_name, i );
\ 05BC 4B LD C,E
\ 05BD 42 LD B,D
\ 05BE 110000 LD DE,file_name
\ 05C1 3E00 LD A,BYTE3 get_dir_name
\ 05C3 21C004 LD HL,LWRD get_dir_name
\ 05C6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05C9 D1 POP DE
370 temp_record.filetype= TYPE_DIR;
\ 05CA AF XOR A
\ 05CB ?0086:
\ 05CB 320000 LD (temp_record),A
\ 05CE ?0072:
371 }
372 GetLongNameAndSave(file_name,Longnamebuf,string_id); //保存长,短名字到 temp_record
\ 05CE D5 PUSH DE
\ 05CF DD6E0C LD L,(IX+12)
\ 05D2 E5 PUSH HL
\ 05D3 210600 LD HL,6
\ 05D6 39 ADD HL,SP
\ 05D7 4D LD C,L
\ 05D8 44 LD B,H
\ 05D9 110000 LD DE,file_name
\ 05DC 3E00 LD A,BYTE3 GetLongNameAndSave
\ 05DE 210000 LD HL,LWRD GetLongNameAndSave
\ 05E1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05E4 E1 POP HL
\ 05E5 D1 POP DE
373 SaveOtherPara(); //保存其他目录结构相关参数到 temp_record
\ 05E6 3E00 LD A,BYTE3 SaveOtherPara
\ 05E8 216900 LD HL,LWRD SaveOtherPara
\ 05EB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
374
375 TransOneRecord(OnePageRecord+i-top,&temp_record); //将temp_record的记录数据保存到idm中
\ 05EE D5 PUSH DE
\ 05EF DD4E02 LD C,(IX+2)
\ 05F2 DD4603 LD B,(IX+3)
\ 05F5 EB EX DE,HL
\ 05F6 CD8803 CALL LWRD ?0094
\ 05F9 210000 LD HL,OnePageRecord
\ 05FC 19 ADD HL,DE
\ 05FD EB EX DE,HL
\ 05FE 3E00 LD A,BYTE3 TransOneRecord
\ 0600 218D00 LD HL,LWRD TransOneRecord
\ 0603 010000 LD BC,temp_record
\ 0606 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0609 D1 POP DE
\ 060A 13 INC DE
\ 060B 1882 JR ?0067
\ 060D ?0066:
376 }
377 fselTotal=temp;
\ 060D FD220000 LD (fselTotal),IY
378 }
\ 0611 FDE1 POP IY
\ 0613 C30000 JP LWRD ?BANK_LEAVE_DIRECT_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: 1558
Constant size: 6
Static variable size: Data(660) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?