📄 ui_clock.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:40:24 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_setting\ui_clock.c #
# List file = d:\case_i_d913f\ap\ap_setting\list\ui_clock.lst #
# Object file = d:\case_i_d913f\ap\ap_setting\release\obj\ui_clock.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\AP_SETTING\ui_clock.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_clock(17)
\ 0000 RSEG CODE(0)
\ 0000 RSEG CONST(0)
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN TM_GetDate
\ 0000 EXTERN TM_GetTime
\ 0000 EXTERN TM_SetDate
\ 0000 EXTERN TM_SetTime
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 PUBLIC clock_region
\ 0000 EXTERN g_comval
\ 0000 EXTERN gwtime
\ 0000 EXTERN itoa_2
\ 0000 EXTERN itoa_4
\ 0000 PUBLIC month_days
\ 0000 PUBLIC show_clock
\ 0000 EXTERN systemtime
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?C_S_SWITCH_L06
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE
\ 0000 show_clock:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * system setting ap of sdk 3.0, ui part,
5 * this function is too big to fit in a bank with others
6 *
7 * (c) Copyright, Actions Co,Ld.
8 * All Right Reserved
9 *
10 * $Id: ui_clock.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
11 *******************************************************************************
12 */
13 #include "actos.h"
14 #include "enhanced.h"
15 #include "ap_common.h"
16 #include "ap_setting.h"
17
18 #define POSITION_CLOCK_BG 30
19
20 extern unsigned long systemtime;
21 extern unsigned long gwtime;
22
23 const region_t clock_region= {34, 40, 60, 16};
24
25 //days of month
26 const char month_days[]={31,28,31,30,31,30,31,31,30,31,30,31 };
27
28 /*
29 ********************************************************************************
30 * Description : 录音时间设定界面
31 *
32 * Arguments :
33 *
34 * Returns :
35 *
36 * Notes :
37 *
38 ********************************************************************************
39 */
40 int show_clock(void)
41 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 DDE5 PUSH IX
\ 0004 DD210000 LD IX,0
\ 0008 DD39 ADD IX,SP
\ 000A 21D4FF LD HL,65492
\ 000D 39 ADD HL,SP
\ 000E F9 LD SP,HL
42 char bSettime=0;
\ 000F DD36E000 LD (IX-32),0
43 char bTimeAdd=0xFF;
\ 0013 DD36E3FF LD (IX-29),255
44 date_t date={2007, 1, 1};
\ 0017 210000 LD HL,0
\ 001A 39 ADD HL,SP
\ 001B 5D LD E,L
\ 001C 54 LD D,H
\ 001D 211000 LD HL,?0002
\ 0020 010400 LD BC,4
\ 0023 EDB0 LDIR
45 time_t time={12, 00, 00};
\ 0025 210400 LD HL,4
\ 0028 39 ADD HL,SP
\ 0029 5D LD E,L
\ 002A 54 LD D,H
\ 002B 211400 LD HL,?0003
\ 002E 010300 LD BC,3
\ 0031 EDB0 LDIR
46 char buf[11]; //date & time
47 char key;
48 char set_what=0; //0, 非设定状态, 1,year, 2,month...
\ 0033 DD36DC00 LD (IX-36),0
49 BOOL show_what=TRUE; //true, 显示, false, 不显示
\ 0037 DD36E601 LD (IX-26),1
50 char days; //本月的天数
51 BOOL result;
52 BOOL need_draw=TRUE;
\ 003B DD36DF01 LD (IX-33),1
53 BOOL need_draw_backgroud=TRUE;
\ 003F DD36E501 LD (IX-27),1
54 BOOL set_ok=FALSE; //设置完成
\ 0043 DD36E400 LD (IX-28),0
55 BOOL adjusting=FALSE; //正在设置,不要闪烁
\ 0047 DD36E100 LD (IX-31),0
56 kval_t kval;
57
58 //read date & time
59 result = TM_GetDate(&date, 0);
\ 004B 0E00 LD C,0
\ 004D 210000 LD HL,0
\ 0050 39 ADD HL,SP
\ 0051 5D LD E,L
\ 0052 54 LD D,H
\ 0053 CD0000 CALL LWRD TM_GetDate
\ 0056 DD77E2 LD (IX-30),A
60 //DUMP("get date ok!", 0);
61 ASSERT(result);
62 result = TM_GetTime(&time);
\ 0059 210400 LD HL,4
\ 005C 39 ADD HL,SP
\ 005D 5D LD E,L
\ 005E 54 LD D,H
\ 005F CD0000 CALL LWRD TM_GetTime
\ 0062 DD77E2 LD (IX-30),A
63 //DUMP("get time ok!", 0);
64 ASSERT(result);
65 bSettime=0;
\ 0065 DD36E000 LD (IX-32),0
66 bTimeAdd=0xFF;
\ 0069 DD36E3FF LD (IX-29),255
\ 006D ?0005:
67
68 while(1)
69 {
70 //显示背景
71 if(need_draw_backgroud)
\ 006D AF XOR A
\ 006E DDB6E5 OR (IX-27)
\ 0071 284D JR Z,?0008
\ 0073 ?0007:
72 {
73 ResShowPic(CLKBCK,0,0);
\ 0073 0E00 LD C,0
\ 0075 C5 PUSH BC
\ 0076 0E00 LD C,0
\ 0078 112400 LD DE,36
\ 007B 3E00 LD A,BYTE3 ResShowPic
\ 007D 210000 LD HL,LWRD ResShowPic
\ 0080 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0083 F1 POP AF
74 ///-SetTextOutMode(1);
75 SetBackgdColor(0x0000df1c);
\ 0084 010000 LD BC,0
\ 0087 111CDF LD DE,57116
\ 008A CD0000 CALL LWRD SetBackgdColor
76 SetPenColor(Color_BLACK_def);
\ 008D 010000 LD BC,0
\ 0090 110000 LD DE,0
\ 0093 CD0000 CALL LWRD SetPenColor
77 ResShowMultiString(SMAIN1,g_comval.langid,255,1);
\ 0096 0E01 LD C,1
\ 0098 C5 PUSH BC
\ 0099 0EFF LD C,255
\ 009B C5 PUSH BC
\ 009C ED4B0C00 LD BC,(g_comval+12)
\ 00A0 11F101 LD DE,497
\ 00A3 3E00 LD A,BYTE3 ResShowMultiString
\ 00A5 210000 LD HL,LWRD ResShowMultiString
\ 00A8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00AB F1 POP AF
\ 00AC F1 POP AF
78 SetBackgdColor(Color_MENU_def);
\ 00AD 010000 LD BC,0
\ 00B0 11FFFF LD DE,65535
\ 00B3 CD0000 CALL LWRD SetBackgdColor
79 ///-SetTextOutMode(0);
80 output8(0x4e,input8(0x4e)|0x08);
\ 00B6 DB4E IN A,(78)
\ 00B8 CBDF SET 3,A
\ 00BA D34E OUT (78),A
81 need_draw_backgroud = FALSE;
\ 00BC DD36E500 LD (IX-27),0
\ 00C0 ?0008:
82 }
83
84 //显示时钟
85 if(need_draw)
\ 00C0 AF XOR A
\ 00C1 DDB6DF OR (IX-33)
\ 00C4 CAD302 JP Z,?0010
\ 00C7 ?0009:
86 {
87 if(bTimeAdd==0xff)
\ 00C7 DD46E3 LD B,(IX-29)
\ 00CA 04 INC B
\ 00CB 203B JR NZ,?0014
\ 00CD ?0011:
88 {
89 result = TM_GetDate(&date, 0);
\ 00CD 0E00 LD C,0
\ 00CF 210000 LD HL,0
\ 00D2 39 ADD HL,SP
\ 00D3 5D LD E,L
\ 00D4 54 LD D,H
\ 00D5 CD0000 CALL LWRD TM_GetDate
\ 00D8 DD77E2 LD (IX-30),A
90 result = TM_GetTime(&time);
\ 00DB 210400 LD HL,4
\ 00DE 39 ADD HL,SP
\ 00DF 5D LD E,L
\ 00E0 54 LD D,H
\ 00E1 CD0000 CALL LWRD TM_GetTime
\ 00E4 DD77E2 LD (IX-30),A
91
92 //系统时间没作2098限制,ap层限制
93 if ( date.year >= 2099 ) //2000~2098
\ 00E7 013308 LD BC,2099
\ 00EA DD6ED4 LD L,(IX-44)
\ 00ED DD66D5 LD H,(IX-43)
\ 00F0 A7 AND A
\ 00F1 ED42 SBC HL,BC
\ 00F3 3813 JR C,?0014
\ 00F5 ?0013:
94 {
95 date.year = 2000;
\ 00F5 DD36D4D0 LD (IX-44),208
\ 00F9 DD36D507 LD (IX-43),7
96 TM_SetDate(&date, 0);
\ 00FD 0E00 LD C,0
\ 00FF 210000 LD HL,0
\ 0102 39 ADD HL,SP
\ 0103 5D LD E,L
\ 0104 54 LD D,H
\ 0105 CD0000 CALL LWRD TM_SetDate
\ 0108 ?0014:
\ 0108 ?0012:
97 }
98 ASSERT(result);
99 }
100
101 SetPenColor(Color_WHITE_def);
\ 0108 010000 LD BC,0
\ 010B 11FFFF LD DE,65535
\ 010E CD0000 CALL LWRD SetPenColor
102 itoa_4(date.year, buf);
\ 0111 211400 LD HL,20
\ 0114 39 ADD HL,SP
\ 0115 4D LD C,L
\ 0116 44 LD B,H
\ 0117 DD5ED4 LD E,(IX-44)
\ 011A DD56D5 LD D,(IX-43)
\ 011D 3E00 LD A,BYTE3 itoa_4
\ 011F 210000 LD HL,LWRD itoa_4
\ 0122 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
103
104 SetTextPos(23-9,47-2);
\ 0125 0E2D LD C,45
\ 0127 1E0E LD E,14
\ 0129 CD0000 CALL LWRD SetTextPos
105 if(set_what == 1)
\ 012C DD46DC LD B,(IX-36)
\ 012F 05 DEC B
\ 0130 2016 JR NZ,?0016
\ 0132 ?0015:
106 {
107 SetBackgdColor(Color_BLACK_def);
\ 0132 010000 LD BC,0
\ 0135 110000 LD DE,0
\ 0138 CD0000 CALL LWRD SetBackgdColor
108 PutS(buf, -1);
\ 013B 0EFF LD C,255
\ 013D 211400 LD HL,20
\ 0140 39 ADD HL,SP
\ 0141 5D LD E,L
\ 0142 54 LD D,H
\ 0143 CD0000 CALL LWRD PutS
109 }
110 else
\ 0146 1814 JR ?0017
\ 0148 ?0016:
111 {
112 SetBackgdColor(0x930);
\ 0148 010000 LD BC,0
\ 014B 113009 LD DE,2352
\ 014E CD0000 CALL LWRD SetBackgdColor
113 PutS(buf, -1);
\ 0151 0EFF LD C,255
\ 0153 211400 LD HL,20
\ 0156 39 ADD HL,SP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -