ui_progress.lst
来自「MP3 整个 SDK」· LST 代码 · 共 209 行
LST
209 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:05 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_progress.c #
# List file = d:\case_i_d90f\ap\ap_fmrecord\list\ui_progress.lst #
# Object file = d:\case_i_d90f\ap\ap_fmrecord\obj\ui_progress.r01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_fmrecord\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_fmrecord\List\ -q -t8 -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\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 EXTERN SetTextOutMode
\ 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 212D00 LD HL,45
\ 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 2857 JR Z,?0003
\ 0047 ?0002:
44 {
45 ResShowPic(SSBCK,0,0);
\ 0047 0E00 LD C,0
\ 0049 C5 PUSH BC
\ 004A 11DD00 LD DE,221
\ 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 0E2D LD C,45
\ 005B 11DE00 LD DE,222
\ 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_WHITE_def);
\ 0067 010000 LD BC,0
\ 006A 11FFFF LD DE,65535
\ 006D CD0000 CALL LWRD SetPenColor
48 //SetBackgdColor(Color_MENU_def);
49 SetTextOutMode(1);
\ 0070 1E01 LD E,1
\ 0072 CD0000 CALL LWRD SetTextOutMode
50 ResShowMultiString(SMAIN7, progress->string_id, menuhead_s_pos_x_def, menuhead_s_pos_y_def);
\ 0075 0E94 LD C,148
\ 0077 C5 PUSH BC
\ 0078 0E16 LD C,22
\ 007A C5 PUSH BC
\ 007B DD4E06 LD C,(IX+6)
\ 007E 116E01 LD DE,366
\ 0081 3E00 LD A,BYTE3 ResShowMultiString
\ 0083 210000 LD HL,LWRD ResShowMultiString
\ 0086 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0089 F1 POP AF
\ 008A F1 POP AF
51 ResShowPic(SLIDPTR, value, slider_cursor_y_def);
\ 008B 0E37 LD C,55
\ 008D C5 PUSH BC
\ 008E FDE5 PUSH IY
\ 0090 E1 POP HL
\ 0091 4D LD C,L
\ 0092 11DC00 LD DE,220
\ 0095 3E00 LD A,BYTE3 ResShowPic
\ 0097 210000 LD HL,LWRD ResShowPic
\ 009A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 009D F1 POP AF
\ 009E ?0003:
52
53 }
54 SetPenColor(oldDC_sav.PenColor);
\ 009E 210000 LD HL,0
\ 00A1 39 ADD HL,SP
\ 00A2 5E LD E,(HL)
\ 00A3 23 INC HL
\ 00A4 56 LD D,(HL)
\ 00A5 23 INC HL
\ 00A6 4E LD C,(HL)
\ 00A7 23 INC HL
\ 00A8 46 LD B,(HL)
\ 00A9 CD0000 CALL LWRD SetPenColor
55 SetBackgdColor(oldDC_sav.BackgdColor);
\ 00AC 210400 LD HL,4
\ 00AF 39 ADD HL,SP
\ 00B0 5E LD E,(HL)
\ 00B1 23 INC HL
\ 00B2 56 LD D,(HL)
\ 00B3 23 INC HL
\ 00B4 4E LD C,(HL)
\ 00B5 23 INC HL
\ 00B6 46 LD B,(HL)
\ 00B7 CD0000 CALL LWRD SetBackgdColor
56 }
\ 00BA 210C00 LD HL,12
\ 00BD 39 ADD HL,SP
\ 00BE F9 LD SP,HL
\ 00BF DDE1 POP IX
\ 00C1 FDE1 POP IY
\ 00C3 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00C6 END
Errors: none
Warnings: none
Code size: 198
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?