📄 ui.lst
字号:
424 BOOL need_draw=TRUE;
\ 0488 DD36DE01 LD (IX-34),1
425 char buf[12]; // 1024M<100%>
426 WORD char_count; //buf文字长度
427
428 SetPenColor(Color_BLACK_def);
\ 048C 010000 LD BC,0
\ 048F 110000 LD DE,0
\ 0492 CD0000 CALL LWRD SetPenColor
429 SetBackgdColor(Color_MENU_def);
\ 0495 010000 LD BC,0
\ 0498 11FFFF LD DE,65535
\ 049B CD0000 CALL LWRD SetBackgdColor
430 ClearScreen(NULL);//清屏
\ 049E 110000 LD DE,0
\ 04A1 CD0000 CALL LWRD ClearScreen
431 ResShowMultiString(WAITPASS, g_comval.langid, 255, 58);
\ 04A4 0E3A LD C,58
\ 04A6 C5 PUSH BC
\ 04A7 0EFF LD C,255
\ 04A9 C5 PUSH BC
\ 04AA ED4B0C00 LD BC,(g_comval+12)
\ 04AE 115802 LD DE,600
\ 04B1 3E00 LD A,BYTE3 ResShowMultiString
\ 04B3 210000 LD HL,LWRD ResShowMultiString
\ 04B6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04B9 F1 POP AF
\ 04BA F1 POP AF
432
433 //check card
434 card_ok = DRV_ActiveDrive('H', 0);
\ 04BB 0E00 LD C,0
\ 04BD 1E48 LD E,72
\ 04BF CD0000 CALL LWRD DRV_ActiveDrive
\ 04C2 DD77DF LD (IX-33),A
435 if(card_ok)
\ 04C5 B7 OR A
\ 04C6 CA5305 JP Z,?0134
\ 04C9 ?0133:
436 {
437 total2 = FS_GetSpace(FS_GET_SPACE_TOTAL);
\ 04C9 1E00 LD E,0
\ 04CB CD0000 CALL LWRD FS_GetSpace
\ 04CE DD75E2 LD (IX-30),L
\ 04D1 DD74E3 LD (IX-29),H
\ 04D4 DD71E4 LD (IX-28),C
\ 04D7 DD70E5 LD (IX-27),B
438 free2 = FS_GetSpace(FS_GET_SPACE_FREE);
\ 04DA 1E01 LD E,1
\ 04DC CD0000 CALL LWRD FS_GetSpace
\ 04DF DD75EA LD (IX-22),L
\ 04E2 DD74EB LD (IX-21),H
\ 04E5 DD71EC LD (IX-20),C
\ 04E8 DD70ED LD (IX-19),B
439
440 //处理<1%
441 if(total2 == free2) percent2 = 0;
\ 04EB C5 PUSH BC
\ 04EC E5 PUSH HL
\ 04ED DD6EE2 LD L,(IX-30)
\ 04F0 DD66E3 LD H,(IX-29)
\ 04F3 C1 POP BC
\ 04F4 A7 AND A
\ 04F5 ED42 SBC HL,BC
\ 04F7 C1 POP BC
\ 04F8 2010 JR NZ,?0136
\ 04FA DD6EE4 LD L,(IX-28)
\ 04FD DD66E5 LD H,(IX-27)
\ 0500 ED42 SBC HL,BC
\ 0502 2006 JR NZ,?0136
\ 0504 ?0135:
\ 0504 DD36DA00 LD (IX-38),0
442 else
\ 0508 1845 JR ?0139
\ 050A ?0136:
443 {
444 percent2 = (total2 - free2)*100 / total2;
\ 050A DD6EE4 LD L,(IX-28)
\ 050D DD66E5 LD H,(IX-27)
\ 0510 E5 PUSH HL
\ 0511 DD6EE2 LD L,(IX-30)
\ 0514 DD66E3 LD H,(IX-29)
\ 0517 E5 PUSH HL
\ 0518 A7 AND A
\ 0519 DD6EE2 LD L,(IX-30)
\ 051C DD66E3 LD H,(IX-29)
\ 051F DD4EEA LD C,(IX-22)
\ 0522 DD46EB LD B,(IX-21)
\ 0525 ED42 SBC HL,BC
\ 0527 EB EX DE,HL
\ 0528 DD6EE4 LD L,(IX-28)
\ 052B DD66E5 LD H,(IX-27)
\ 052E DD4EEC LD C,(IX-20)
\ 0531 DD46ED LD B,(IX-19)
\ 0534 ED42 SBC HL,BC
\ 0536 E5 PUSH HL
\ 0537 D5 PUSH DE
\ 0538 010000 LD BC,0
\ 053B 216400 LD HL,100
\ 053E CD0000 CALL LWRD ?L_MUL_L03
\ 0541 CD0000 CALL LWRD ?UL_DIV_L03
\ 0544 DD75DA LD (IX-38),L
445 if(percent2 == 0) percent2 = 1;
\ 0547 2C INC L
\ 0548 2D DEC L
\ 0549 2004 JR NZ,?0139
\ 054B ?0138:
\ 054B DD36DA01 LD (IX-38),1
\ 054F ?0139:
\ 054F ?0137:
446 }
447 toshow = 1;
\ 054F DD36DC01 LD (IX-36),1
\ 0553 ?0134:
448 }
449
450 //check main memory
451 mem_ok = DRV_ActiveDrive('C', 0);
\ 0553 0E00 LD C,0
\ 0555 1E43 LD E,67
\ 0557 CD0000 CALL LWRD DRV_ActiveDrive
\ 055A DD77F2 LD (IX-14),A
452 if(mem_ok)
\ 055D B7 OR A
\ 055E CAEB05 JP Z,?0141
\ 0561 ?0140:
453 {
454 total1 = FS_GetSpace(FS_GET_SPACE_TOTAL);
\ 0561 1E00 LD E,0
\ 0563 CD0000 CALL LWRD FS_GetSpace
\ 0566 DD75E6 LD (IX-26),L
\ 0569 DD74E7 LD (IX-25),H
\ 056C DD71E8 LD (IX-24),C
\ 056F DD70E9 LD (IX-23),B
455 free1 = FS_GetSpace(FS_GET_SPACE_FREE);
\ 0572 1E01 LD E,1
\ 0574 CD0000 CALL LWRD FS_GetSpace
\ 0577 DD75EE LD (IX-18),L
\ 057A DD74EF LD (IX-17),H
\ 057D DD71F0 LD (IX-16),C
\ 0580 DD70F1 LD (IX-15),B
456
457 //处理<1%
458 if(total1 == free1) percent1 = 0;
\ 0583 C5 PUSH BC
\ 0584 E5 PUSH HL
\ 0585 DD6EE6 LD L,(IX-26)
\ 0588 DD66E7 LD H,(IX-25)
\ 058B C1 POP BC
\ 058C A7 AND A
\ 058D ED42 SBC HL,BC
\ 058F C1 POP BC
\ 0590 2010 JR NZ,?0143
\ 0592 DD6EE8 LD L,(IX-24)
\ 0595 DD66E9 LD H,(IX-23)
\ 0598 ED42 SBC HL,BC
\ 059A 2006 JR NZ,?0143
\ 059C ?0142:
\ 059C DD36DB00 LD (IX-37),0
459 else
\ 05A0 1845 JR ?0146
\ 05A2 ?0143:
460 {
461 percent1 = (total1 - free1)*100 / total1;
\ 05A2 DD6EE8 LD L,(IX-24)
\ 05A5 DD66E9 LD H,(IX-23)
\ 05A8 E5 PUSH HL
\ 05A9 DD6EE6 LD L,(IX-26)
\ 05AC DD66E7 LD H,(IX-25)
\ 05AF E5 PUSH HL
\ 05B0 A7 AND A
\ 05B1 DD6EE6 LD L,(IX-26)
\ 05B4 DD66E7 LD H,(IX-25)
\ 05B7 DD4EEE LD C,(IX-18)
\ 05BA DD46EF LD B,(IX-17)
\ 05BD ED42 SBC HL,BC
\ 05BF EB EX DE,HL
\ 05C0 DD6EE8 LD L,(IX-24)
\ 05C3 DD66E9 LD H,(IX-23)
\ 05C6 DD4EF0 LD C,(IX-16)
\ 05C9 DD46F1 LD B,(IX-15)
\ 05CC ED42 SBC HL,BC
\ 05CE E5 PUSH HL
\ 05CF D5 PUSH DE
\ 05D0 010000 LD BC,0
\ 05D3 216400 LD HL,100
\ 05D6 CD0000 CALL LWRD ?L_MUL_L03
\ 05D9 CD0000 CALL LWRD ?UL_DIV_L03
\ 05DC DD75DB LD (IX-37),L
462 if(percent1 == 0) percent1 = 1;
\ 05DF 2C INC L
\ 05E0 2D DEC L
\ 05E1 2004 JR NZ,?0146
\ 05E3 ?0145:
\ 05E3 DD36DB01 LD (IX-37),1
\ 05E7 ?0146:
\ 05E7 ?0144:
463 }
464 toshow = 0;
\ 05E7 DD36DC00 LD (IX-36),0
\ 05EB ?0141:
465 }
466
467 //control
468 progress.min = 0;
\ 05EB 210000 LD HL,0
\ 05EE 220000 LD (progress),HL
469 progress.max = 100;
\ 05F1 216400 LD HL,100
\ 05F4 220200 LD (progress+2),HL
470 progress.string_id=g_comval.langid;
\ 05F7 3A0C00 LD A,(g_comval+12)
\ 05FA 320600 LD (progress+6),A
\ 05FD ?0148:
471 while(ap_get_message() != 0); //清除超时消息
\ 05FD CD0000 CALL LWRD ap_get_message
\ 0600 B7 OR A
\ 0601 20FA JR NZ,?0148
\ 0603 ?0149:
472
473 while(1)
\ 0603 ?0147:
\ 0603 ?0151:
474 {
475 if(need_draw)
\ 0603 AF XOR A
\ 0604 DDB6DE OR (IX-34)
\ 0607 CAC608 JP Z,?0154
\ 060A ?0153:
476 {
477 if(toshow == 0)
\ 060A AF XOR A
\ 060B DDB6DC OR (IX-36)
\ 060E C26307 JP NZ,?0156
\ 0611 ?0155:
478 {
479 //percentage
480 progress.value = percent1;
\ 0611 DD4EDB LD C,(IX-37)
\ 0614 0600 LD B,0
\ 0616 ED430400 LD (progress+4),BC
481
482 //显示文字
483 char_count = fmt_memory(buf, total1 / 2048, percent1)+1;
\ 061A DD6EDB LD L,(IX-37)
\ 061D E5 PUSH HL
\ 061E 3E0B LD A,11
\ 0620 DD4EE8 LD C,(IX-24)
\ 0623 DD46E9 LD B,(IX-23)
\ 0626 DD6EE6 LD L,(IX-26)
\ 0629 DD66E7 LD H,(IX-25)
\ 062C CD0000 CALL LWRD ?UL_RSH_L03
\ 062F 4D LD C,L
\ 0630 44 LD B,H
\ 0631 211C00 LD HL,28
\ 0634 39 ADD HL,SP
\ 0635 5D LD E,L
\ 0636 54 LD D,H
\ 0637 3E00 LD A,BYTE3 fmt_memory
\ 0639 219003 LD HL,LWRD fmt_memory
\ 063C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 063F F1 POP AF
\ 0640 23 INC HL
\ 0641 DD75E0 LD (IX-32),L
\ 0644 DD74E1 LD (IX-31),H
484 ASSERT(char_count <= sizeof(buf));
485 ui_show_progress(&progress, g_comval.langid);
\ 0647 ED4B0C00 LD BC,(g_comval+12)
\ 064B 0600 LD B,0
\ 064D 110000 LD DE,progress
\ 0650 3E00 LD A,BYTE3 ui_show_progress
\ 0652 210000 LD HL,LWRD ui_show_progress
\ 0655 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
486
487 ui_show_setdata(buf,(SCR_WIDTH-char_count*13)/2,84);
\ 0658 0E54 LD C,84
\ 065A C5 PUSH BC
\ 065B 010D00 LD BC,13
\ 065E DD5EE0 LD E,(IX-32)
\ 0661 DD56E1 LD D,(IX-31)
\ 0664 CD0000 CALL LWRD ?S_MUL_L02
\ 0667 21B000 LD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -