📄 ui_main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:39:29 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\common\ui_main.c #
# List file = d:\case_i_d913f\ap\ap_setting\list\ui_main.lst #
# Object file = d:\case_i_d913f\ap\ap_setting\release\obj\ui_main.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_main.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_main(17)
\ 0000 RSEG COM_MAIN(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN GetDCStatus
\ 0000 EXTERN GetUsbCableStatus
\ 0000 EXTERN PutS
\ 0000 EXTERN PutSDImage
\ 0000 EXTERN SD_FRead
\ 0000 EXTERN SD_FSeek
\ 0000 EXTERN SetAsciiFont
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN ap_sleep
\ 0000 PUBLIC itoa_1
\ 0000 PUBLIC itoa_2
\ 0000 PUBLIC itoa_3
\ 0000 PUBLIC itoa_4
\ 0000 PUBLIC main_ResShowPic
\ 0000 EXTERN res_entry
\ 0000 EXTERN res_fp
\ 0000 EXTERN res_region
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_show_a
\ 0000 PUBLIC ui_show_b
\ 0000 PUBLIC ui_show_batt
\ 0000 PUBLIC ui_show_bitrate
\ 0000 PUBLIC ui_show_c
\ 0000 PUBLIC ui_show_d
\ 0000 PUBLIC ui_show_f
\ 0000 PUBLIC ui_show_g
\ 0000 PUBLIC ui_show_lock
\ 0000 PUBLIC ui_show_vol
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?UC_DIV_L01
\ 0000 EXTERN ?UC_MOD_L01
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?US_MOD_L02
\ 0000 EXTERN ?L_LSH_L03
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG COM_MAIN
\ 0000 itoa_1:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib , main ui control
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *******************************************************************************
10 */
11 #pragma codeseg(COM_MAIN)
12
13 #include "ap_common.h"
14
15 //主界面为了不用bank切换而使用 ResShowPic()
16 extern res_entry_t res_entry;
17 extern region_t res_region;
18
19 //bank const
20 /*注意-以下函数必须能访问到这些常量 */
21 #pragma memory=constseg(COM_MAIN_D)
22
23 #pragma memory=default
24
25 /*
26 ********************************************************************************
27 * Description : 数字转换成字符串
28 *
29 * Arguments : i, 数字
30 * buf, 输出字符串指针, 3 bytes
31 *
32 * Returns : 成功, 输出字符串指针
33 *
34 * Notes : 数字只能是 0~9
35 *
36 ********************************************************************************
37 */
38 char *itoa_1(BYTE i, char *buf)
39 {
\ 0000 FDE5 PUSH IY
\ 0002 DDE5 PUSH IX
\ 0004 DD210000 LD IX,0
\ 0008 DD39 ADD IX,SP
\ 000A C5 PUSH BC
\ 000B FDE1 POP IY
\ 000D 53 LD D,E
40 buf[0] = (i % 10)+'0';
\ 000E 060A LD B,10
\ 0010 7B LD A,E
\ 0011 CD0000 CALL LWRD ?UC_MOD_L01
\ 0014 C630 ADD A,48
\ 0016 FD7700 LD (IY+0),A
41 buf[1] = 0;
\ 0019 FD360100 LD (IY+1),0
42 return buf;
\ 001D FDE5 PUSH IY
\ 001F E1 POP HL
43 }
\ 0020 DDF9 LD SP,IX
\ 0022 DDE1 POP IX
\ 0024 FDE1 POP IY
\ 0026 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0029 itoa_2:
44
45 /*
46 ********************************************************************************
47 * Description : 数字转换成字符串
48 *
49 * Arguments : i, 数字
50 * buf, 输出字符串指针, 3 bytes
51 *
52 * Returns : 成功, 输出字符串指针
53 *
54 * Notes : 数字只能是 00~99
55 *
56 ********************************************************************************
57 */
58 char *itoa_2(BYTE i, char *buf)
59 {
\ 0029 FDE5 PUSH IY
\ 002B DDE5 PUSH IX
\ 002D DD210000 LD IX,0
\ 0031 DD39 ADD IX,SP
\ 0033 C5 PUSH BC
\ 0034 FDE1 POP IY
\ 0036 53 LD D,E
60 buf[0] = (i % 100) / 10+'0';
\ 0037 0664 LD B,100
\ 0039 7B LD A,E
\ 003A CD0000 CALL LWRD ?UC_MOD_L01
\ 003D 060A LD B,10
\ 003F CD0000 CALL LWRD ?UC_DIV_L01
\ 0042 C630 ADD A,48
\ 0044 FD7700 LD (IY+0),A
61 buf[1] = (i % 10)+'0';
\ 0047 060A LD B,10
\ 0049 7A LD A,D
\ 004A CD0000 CALL LWRD ?UC_MOD_L01
\ 004D C630 ADD A,48
\ 004F FD7701 LD (IY+1),A
62 buf[2] = 0;
\ 0052 FD360200 LD (IY+2),0
63 return buf;
\ 0056 FDE5 PUSH IY
\ 0058 E1 POP HL
64 }
\ 0059 DDF9 LD SP,IX
\ 005B DDE1 POP IX
\ 005D FDE1 POP IY
\ 005F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0062 itoa_3:
65 /*
66 ********************************************************************************
67 * Description : 数字转换成字符串
68 *
69 * Arguments : i, 数字
70 * buf, 输出字符串指针,4 bytes
71 *
72 * Returns : 成功, 输出字符串指针
73 *
74 * Notes : 数字只能是 000~999
75 *
76 ********************************************************************************
77 */
78 char *itoa_3(WORD i, char *buf)
79 {
\ 0062 FDE5 PUSH IY
\ 0064 DDE5 PUSH IX
\ 0066 DD210000 LD IX,0
\ 006A DD39 ADD IX,SP
\ 006C D5 PUSH DE
\ 006D C5 PUSH BC
\ 006E FDE1 POP IY
80 buf[0] = (i % 1000) / 100+'0' ;
\ 0070 01E803 LD BC,1000
\ 0073 CD0000 CALL LWRD ?US_MOD_L02
\ 0076 016400 LD BC,100
\ 0079 CD0000 CALL LWRD ?US_DIV_L02
\ 007C 7B LD A,E
\ 007D C630 ADD A,48
\ 007F FD7700 LD (IY+0),A
81 buf[1] = (i % 100) / 10+'0' ;
\ 0082 016400 LD BC,100
\ 0085 DD5EFE LD E,(IX-2)
\ 0088 DD56FF LD D,(IX-1)
\ 008B CD0000 CALL LWRD ?US_MOD_L02
\ 008E 010A00 LD BC,10
\ 0091 CD0000 CALL LWRD ?US_DIV_L02
\ 0094 7B LD A,E
\ 0095 C630 ADD A,48
\ 0097 FD7701 LD (IY+1),A
82 buf[2] = (i % 10)+'0';
\ 009A 010A00 LD BC,10
\ 009D DD5EFE LD E,(IX-2)
\ 00A0 DD56FF LD D,(IX-1)
\ 00A3 CD0000 CALL LWRD ?US_MOD_L02
\ 00A6 7B LD A,E
\ 00A7 C630 ADD A,48
\ 00A9 FD7702 LD (IY+2),A
83 buf[3] = 0;
\ 00AC FD360300 LD (IY+3),0
84
85 return buf;
\ 00B0 FDE5 PUSH IY
\ 00B2 E1 POP HL
86 }
\ 00B3 DDF9 LD SP,IX
\ 00B5 DDE1 POP IX
\ 00B7 FDE1 POP IY
\ 00B9 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00BC itoa_4:
87 /*
88 ********************************************************************************
89 * Description : 数字转换成字符串
90 *
91 * Arguments : i, 数字
92 * buf, 输出字符串指针,5 bytes
93 *
94 * Returns : 成功, 输出字符串指针
95 *
96 * Notes : 数字只能是 0000~9999
97 *
98 ********************************************************************************
99 */
100 char *itoa_4(WORD i, char *buf)
101 {
\ 00BC FDE5 PUSH IY
\ 00BE DDE5 PUSH IX
\ 00C0 DD210000 LD IX,0
\ 00C4 DD39 ADD IX,SP
\ 00C6 D5 PUSH DE
\ 00C7 C5 PUSH BC
\ 00C8 FDE1 POP IY
102 buf[0] = (i % 10000) / 1000+'0' ;
\ 00CA 011027 LD BC,10000
\ 00CD CD0000 CALL LWRD ?US_MOD_L02
\ 00D0 01E803 LD BC,1000
\ 00D3 CD0000 CALL LWRD ?US_DIV_L02
\ 00D6 7B LD A,E
\ 00D7 C630 ADD A,48
\ 00D9 FD7700 LD (IY+0),A
103 buf[1] = (i % 1000) / 100+'0' ;
\ 00DC 01E803 LD BC,1000
\ 00DF DD5EFE LD E,(IX-2)
\ 00E2 DD56FF LD D,(IX-1)
\ 00E5 CD0000 CALL LWRD ?US_MOD_L02
\ 00E8 016400 LD BC,100
\ 00EB CD0000 CALL LWRD ?US_DIV_L02
\ 00EE 7B LD A,E
\ 00EF C630 ADD A,48
\ 00F1 FD7701 LD (IY+1),A
104 buf[2] = (i % 100) / 10+'0' ;
\ 00F4 016400 LD BC,100
\ 00F7 DD5EFE LD E,(IX-2)
\ 00FA DD56FF LD D,(IX-1)
\ 00FD CD0000 CALL LWRD ?US_MOD_L02
\ 0100 010A00 LD BC,10
\ 0103 CD0000 CALL LWRD ?US_DIV_L02
\ 0106 7B LD A,E
\ 0107 C630 ADD A,48
\ 0109 FD7702 LD (IY+2),A
105 buf[3] = (i % 10)+'0';
\ 010C 010A00 LD BC,10
\ 010F DD5EFE LD E,(IX-2)
\ 0112 DD56FF LD D,(IX-1)
\ 0115 CD0000 CALL LWRD ?US_MOD_L02
\ 0118 7B LD A,E
\ 0119 C630 ADD A,48
\ 011B FD7703 LD (IY+3),A
106 buf[4] = 0;
\ 011E FD360400 LD (IY+4),0
107
108 return buf;
\ 0122 FDE5 PUSH IY
\ 0124 E1 POP HL
109 }
\ 0125 DDF9 LD SP,IX
\ 0127 DDE1 POP IX
\ 0129 FDE1 POP IY
\ 012B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 012E main_ResShowPic:
110
111
112 //只有这个界面使用,为了提高效率而放在这里
113 int main_ResShowPic(WORD id, uchar x, uchar y)
114 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -