📄 ui_progress.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:39:34 #
# 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_setting\list\ui_progress.lst #
# Object file = d:\case_i_d913f\ap\ap_setting\release\obj\ui_progress.r01#
# Command line = -v0 -mb #
# -OD:\case_i_d913f\ap\ap_setting\release\Obj\ -e -K #
# -w -gA -s7 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_setting\List\ -q -t8 #
# -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 DD210000 LD IX,0
\ 0008 DD39 ADD IX,SP
\ 000A C5 PUSH BC
\ 000B 21F4FF LD HL,65524
\ 000E 39 ADD HL,SP
\ 000F F9 LD SP,HL
\ 0010 D5 PUSH DE
\ 0011 FDE1 POP IY
31 bool need_draw=TRUE;
\ 0013 DD36FC01 LD (IX-4),1
32 char key;
33 int width, step, value;
34
35 DC oldDC_sav;
36 GetDCStatus(&oldDC_sav);
\ 0017 210000 LD HL,0
\ 001A 39 ADD HL,SP
\ 001B 5D LD E,L
\ 001C 54 LD D,H
\ 001D CD0000 CALL LWRD GetDCStatus
37
38 // 计算每一个步长的长度
39 value = slider_pox_x_def + (slider_width_def) * (progress->value - progress->min) / (progress->max - progress->min);
\ 0020 FD5E00 LD E,(IY+0)
\ 0023 FD5601 LD D,(IY+1)
\ 0026 FD6E04 LD L,(IY+4)
\ 0029 FD6605 LD H,(IY+5)
\ 002C A7 AND A
\ 002D ED52 SBC HL,DE
\ 002F 29 ADD HL,HL
\ 0030 29 ADD HL,HL
\ 0031 29 ADD HL,HL
\ 0032 29 ADD HL,HL
\ 0033 29 ADD HL,HL
\ 0034 29 ADD HL,HL
\ 0035 29 ADD HL,HL
\ 0036 EB EX DE,HL
\ 0037 FD4E00 LD C,(IY+0)
\ 003A FD4601 LD B,(IY+1)
\ 003D FD6E02 LD L,(IY+2)
\ 0040 FD6603 LD H,(IY+3)
\ 0043 A7 AND A
\ 0044 ED42 SBC HL,BC
\ 0046 4D LD C,L
\ 0047 44 LD B,H
\ 0048 CD0000 CALL LWRD ?SS_DIV_L02
\ 004B 211800 LD HL,24
\ 004E 19 ADD HL,DE
\ 004F DD75FA LD (IX-6),L
\ 0052 DD74FB LD (IX-5),H
40 //width = slider_width_def / step;
41 // 可能会越界
42
43 if(need_draw)
\ 0055 AF XOR A
\ 0056 DDB6FC OR (IX-4)
\ 0059 2865 JR Z,?0003
\ 005B ?0002:
44 {
45 ResShowPic(SSBCK,0,0);
\ 005B 0E00 LD C,0
\ 005D C5 PUSH BC
\ 005E 0E00 LD C,0
\ 0060 11FE00 LD DE,254
\ 0063 3E00 LD A,BYTE3 ResShowPic
\ 0065 210000 LD HL,LWRD ResShowPic
\ 0068 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 006B F1 POP AF
46 ResShowPic(SSLIDER,slider_pox_x_def,slider_pox_y_def);
\ 006C 0E37 LD C,55
\ 006E C5 PUSH BC
\ 006F 0E18 LD C,24
\ 0071 11FF00 LD DE,255
\ 0074 3E00 LD A,BYTE3 ResShowPic
\ 0076 210000 LD HL,LWRD ResShowPic
\ 0079 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 007C F1 POP AF
47 SetPenColor(Color_BLACK_def);
\ 007D 010000 LD BC,0
\ 0080 110000 LD DE,0
\ 0083 CD0000 CALL LWRD SetPenColor
48 //SetBackgdColor(Color_MENU_def);
49 ///-SetTextOutMode(1);
50 SetBackgdColor(0x0000df1c);
\ 0086 010000 LD BC,0
\ 0089 111CDF LD DE,57116
\ 008C CD0000 CALL LWRD SetBackgdColor
51 ResShowMultiString(SMAIN7, progress->string_id, 255, 1);
\ 008F 0E01 LD C,1
\ 0091 C5 PUSH BC
\ 0092 0EFF LD C,255
\ 0094 C5 PUSH BC
\ 0095 FD4E06 LD C,(IY+6)
\ 0098 11F701 LD DE,503
\ 009B 3E00 LD A,BYTE3 ResShowMultiString
\ 009D 210000 LD HL,LWRD ResShowMultiString
\ 00A0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A3 F1 POP AF
\ 00A4 F1 POP AF
52 SetBackgdColor(Color_MENU_def);
\ 00A5 010000 LD BC,0
\ 00A8 11FFFF LD DE,65535
\ 00AB CD0000 CALL LWRD SetBackgdColor
53 ///-SetTextOutMode(0);
54 ResShowPic(SLIDPTR, value, slider_cursor_y_def);
\ 00AE 0E37 LD C,55
\ 00B0 C5 PUSH BC
\ 00B1 DD4EFA LD C,(IX-6)
\ 00B4 11FD00 LD DE,253
\ 00B7 3E00 LD A,BYTE3 ResShowPic
\ 00B9 210000 LD HL,LWRD ResShowPic
\ 00BC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BF F1 POP AF
\ 00C0 ?0003:
55
56 }
57 SetPenColor(oldDC_sav.PenColor);
\ 00C0 DD4EF4 LD C,(IX-12)
\ 00C3 DD46F5 LD B,(IX-11)
\ 00C6 DD5EF2 LD E,(IX-14)
\ 00C9 DD56F3 LD D,(IX-13)
\ 00CC CD0000 CALL LWRD SetPenColor
58 SetBackgdColor(oldDC_sav.BackgdColor);
\ 00CF 210400 LD HL,4
\ 00D2 39 ADD HL,SP
\ 00D3 5E LD E,(HL)
\ 00D4 23 INC HL
\ 00D5 56 LD D,(HL)
\ 00D6 23 INC HL
\ 00D7 4E LD C,(HL)
\ 00D8 23 INC HL
\ 00D9 46 LD B,(HL)
\ 00DA CD0000 CALL LWRD SetBackgdColor
59 }
\ 00DD DDF9 LD SP,IX
\ 00DF DDE1 POP IX
\ 00E1 FDE1 POP IY
\ 00E3 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00E6 END
Errors: none
Warnings: none
Code size: 230
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -