📄 ui_progress.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:31:10 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\common\ui_progress.c #
# List file = d:\case_i_d913f\ap\ap_fmrecord\list\ui_progress.lst #
# Object file = d:\case_i_d913f\ap\ap_fmrecord\obj\ui_progress.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_fmrecord\Obj\ -e #
# -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_fmrecord\List\ -q -t8 -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\COMMON\ui_progress.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_progress(17)
\ 0000 RSEG COM_CTRL(0)
\ 0000 EXTERN GetDCStatus
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 PUBLIC ui_show_progress
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG COM_CTRL
\ 0000 ui_show_progress:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_progress.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
10 *******************************************************************************
11 */
12 #pragma codeseg(COM_CTRL)
13
14 #include "ap_common.h"
15
16
17 /*
18 ********************************************************************************
19 * Description : 进度条
20 *
21 * Arguments :
22 *
23 * Returns :
24 *
25 * Notes :
26 *
27 ********************************************************************************
28 */
29 int ui_show_progress(const progress_t *progress, int string_id)
30 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 C5 PUSH BC
\ 0005 21F6FF LD HL,65526
\ 0008 39 ADD HL,SP
\ 0009 F9 LD SP,HL
\ 000A D5 PUSH DE
\ 000B DDE1 POP IX
31 bool need_draw=TRUE;
32 char key;
33 int width, step, value;
34
35 DC oldDC_sav;
36 GetDCStatus(&oldDC_sav);
\ 000D EB EX DE,HL
\ 000E CD0000 CALL LWRD GetDCStatus
37
38 // 计算每一个步长的长度
39 value = slider_pox_x_def + (slider_width_def) * (progress->value - progress->min) / (progress->max - progress->min);
\ 0011 DD5E00 LD E,(IX+0)
\ 0014 DD5601 LD D,(IX+1)
\ 0017 DD6E04 LD L,(IX+4)
\ 001A DD6605 LD H,(IX+5)
\ 001D A7 AND A
\ 001E ED52 SBC HL,DE
\ 0020 29 ADD HL,HL
\ 0021 29 ADD HL,HL
\ 0022 29 ADD HL,HL
\ 0023 29 ADD HL,HL
\ 0024 29 ADD HL,HL
\ 0025 29 ADD HL,HL
\ 0026 29 ADD HL,HL
\ 0027 EB EX DE,HL
\ 0028 DD4E00 LD C,(IX+0)
\ 002B DD4601 LD B,(IX+1)
\ 002E DD6E02 LD L,(IX+2)
\ 0031 DD6603 LD H,(IX+3)
\ 0034 A7 AND A
\ 0035 ED42 SBC HL,BC
\ 0037 4D LD C,L
\ 0038 44 LD B,H
\ 0039 CD0000 CALL LWRD ?SS_DIV_L02
\ 003C 211800 LD HL,24
\ 003F 19 ADD HL,DE
\ 0040 E5 PUSH HL
\ 0041 FDE1 POP IY
40 //width = slider_width_def / step;
41 // 可能会越界
42
43 if(need_draw)
\ 0043 AF XOR A
\ 0044 3C INC A
\ 0045 2863 JR Z,?0003
\ 0047 ?0002:
44 {
45 ResShowPic(SSBCK,0,0);
\ 0047 0E00 LD C,0
\ 0049 C5 PUSH BC
\ 004A 11FE00 LD DE,254
\ 004D 3E00 LD A,BYTE3 ResShowPic
\ 004F 210000 LD HL,LWRD ResShowPic
\ 0052 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0055 F1 POP AF
46 ResShowPic(SSLIDER,slider_pox_x_def,slider_pox_y_def);
\ 0056 0E37 LD C,55
\ 0058 C5 PUSH BC
\ 0059 0E18 LD C,24
\ 005B 11FF00 LD DE,255
\ 005E 3E00 LD A,BYTE3 ResShowPic
\ 0060 210000 LD HL,LWRD ResShowPic
\ 0063 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0066 F1 POP AF
47 SetPenColor(Color_BLACK_def);
\ 0067 010000 LD BC,0
\ 006A 59 LD E,C
\ 006B 50 LD D,B
\ 006C CD0000 CALL LWRD SetPenColor
48 //SetBackgdColor(Color_MENU_def);
49 ///-SetTextOutMode(1);
50 SetBackgdColor(0x0000df1c);
\ 006F 010000 LD BC,0
\ 0072 111CDF LD DE,57116
\ 0075 CD0000 CALL LWRD SetBackgdColor
51 ResShowMultiString(SMAIN7, progress->string_id, 255, 1);
\ 0078 0E01 LD C,1
\ 007A C5 PUSH BC
\ 007B 0EFF LD C,255
\ 007D C5 PUSH BC
\ 007E DD4E06 LD C,(IX+6)
\ 0081 11F701 LD DE,503
\ 0084 3E00 LD A,BYTE3 ResShowMultiString
\ 0086 210000 LD HL,LWRD ResShowMultiString
\ 0089 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 008C F1 POP AF
\ 008D F1 POP AF
52 SetBackgdColor(Color_MENU_def);
\ 008E 010000 LD BC,0
\ 0091 11FFFF LD DE,65535
\ 0094 CD0000 CALL LWRD SetBackgdColor
53 ///-SetTextOutMode(0);
54 ResShowPic(SLIDPTR, value, slider_cursor_y_def);
\ 0097 0E37 LD C,55
\ 0099 C5 PUSH BC
\ 009A FDE5 PUSH IY
\ 009C E1 POP HL
\ 009D 4D LD C,L
\ 009E 11FD00 LD DE,253
\ 00A1 3E00 LD A,BYTE3 ResShowPic
\ 00A3 210000 LD HL,LWRD ResShowPic
\ 00A6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A9 F1 POP AF
\ 00AA ?0003:
55
56 }
57 SetPenColor(oldDC_sav.PenColor);
\ 00AA 210000 LD HL,0
\ 00AD 39 ADD HL,SP
\ 00AE 5E LD E,(HL)
\ 00AF 23 INC HL
\ 00B0 56 LD D,(HL)
\ 00B1 23 INC HL
\ 00B2 4E LD C,(HL)
\ 00B3 23 INC HL
\ 00B4 46 LD B,(HL)
\ 00B5 CD0000 CALL LWRD SetPenColor
58 SetBackgdColor(oldDC_sav.BackgdColor);
\ 00B8 210400 LD HL,4
\ 00BB 39 ADD HL,SP
\ 00BC 5E LD E,(HL)
\ 00BD 23 INC HL
\ 00BE 56 LD D,(HL)
\ 00BF 23 INC HL
\ 00C0 4E LD C,(HL)
\ 00C1 23 INC HL
\ 00C2 46 LD B,(HL)
\ 00C3 CD0000 CALL LWRD SetBackgdColor
59 }
\ 00C6 210C00 LD HL,12
\ 00C9 39 ADD HL,SP
\ 00CA F9 LD SP,HL
\ 00CB DDE1 POP IX
\ 00CD FDE1 POP IY
\ 00CF C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00D2 END
Errors: none
Warnings: none
Code size: 210
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -