📄 ui_clockdrm.lst
字号:
\ 025E 39 ADD HL,SP
\ 025F 5D LD E,L
\ 0260 54 LD D,H
\ 0261 210000 LD HL,?0051
\ 0264 010400 LD BC,4
\ 0267 EDB0 LDIR
180 time_t time={12, 00, 00},time1;
\ 0269 211000 LD HL,16
\ 026C 39 ADD HL,SP
\ 026D 5D LD E,L
\ 026E 54 LD D,H
\ 026F 210400 LD HL,?0052
\ 0272 010300 LD BC,3
\ 0275 EDB0 LDIR
181 char buf[11]; //date & time
182 char key;
183 char set_what=0; //0, 非设定状态, 1,year, 2,month...
\ 0277 DD36CE00 LD (IX-50),0
184 BOOL show_what=TRUE; //true, 显示, false, 不显示
\ 027B DD36D301 LD (IX-45),1
185 char days; //本月的天数
186 BOOL result;
187 BOOL need_draw=TRUE;
\ 027F DD36CF01 LD (IX-49),1
188 BOOL need_draw_backgroud=TRUE;
\ 0283 DD36D201 LD (IX-46),1
189 BOOL set_ok=FALSE; //设置完成
\ 0287 DD36D100 LD (IX-47),0
190 BOOL adjusting=FALSE; //正在设置,不要闪烁
\ 028B DD36E600 LD (IX-26),0
191 kval_t kval;
192
193 //read date & time
194 result = TM_GetGWDate(&date, 0);
\ 028F 0E00 LD C,0
\ 0291 210C00 LD HL,12
\ 0294 39 ADD HL,SP
\ 0295 5D LD E,L
\ 0296 54 LD D,H
\ 0297 CD0000 CALL LWRD TM_GetGWDate
\ 029A DD77CD LD (IX-51),A
195 //DUMP("get date ok!", 0);
196 // ASSERT(result);
197 result = TM_GetGWTime(&time);
\ 029D 211000 LD HL,16
\ 02A0 39 ADD HL,SP
\ 02A1 5D LD E,L
\ 02A2 54 LD D,H
\ 02A3 CD0000 CALL LWRD TM_GetGWTime
\ 02A6 DD77CD LD (IX-51),A
198 //DUMP("get time ok!", 0);
199 // ASSERT(result);
200 result = TM_GetGWDate(&date1, 0);
\ 02A9 0E00 LD C,0
\ 02AB 211800 LD HL,24
\ 02AE 39 ADD HL,SP
\ 02AF 5D LD E,L
\ 02B0 54 LD D,H
\ 02B1 CD0000 CALL LWRD TM_GetGWDate
\ 02B4 DD77CD LD (IX-51),A
201 //DUMP("get date ok!", 0);
202 // ASSERT(result);
203 result = TM_GetGWTime(&time1); //修改前一刻的时间备份,用于修改后比较
\ 02B7 211400 LD HL,20
\ 02BA 39 ADD HL,SP
\ 02BB 5D LD E,L
\ 02BC 54 LD D,H
\ 02BD CD0000 CALL LWRD TM_GetGWTime
\ 02C0 DD77CD LD (IX-51),A
204
205 bIsSet=0;
\ 02C3 DD36D400 LD (IX-44),0
206 bTimeAdd=0xff;
\ 02C7 DD36D5FF LD (IX-43),255
207 msgTimeout=0;
\ 02CB DD36CC00 LD (IX-52),0
\ 02CF ?0054:
208 while(1)
209 {
210 output8(0x4e,input8(0x4e)|0x08);
\ 02CF DB4E IN A,(78)
\ 02D1 CBDF SET 3,A
\ 02D3 D34E OUT (78),A
211 //显示背景
212 if(need_draw_backgroud)
\ 02D5 AF XOR A
\ 02D6 DDB6D2 OR (IX-46)
\ 02D9 284E JR Z,?0057
\ 02DB ?0056:
213 {
214 //ResShowPic(FMHEAD,0,107);
215 ResShowPic(CLKBCK,0,0);
\ 02DB 0E00 LD C,0
\ 02DD C5 PUSH BC
\ 02DE 0E00 LD C,0
\ 02E0 112400 LD DE,36
\ 02E3 3E00 LD A,BYTE3 ResShowPic
\ 02E5 210000 LD HL,LWRD ResShowPic
\ 02E8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02EB F1 POP AF
216 SetPenColor(Color_BLACK_def);
\ 02EC 010000 LD BC,0
\ 02EF 110000 LD DE,0
\ 02F2 CD0000 CALL LWRD SetPenColor
217 SetTextOutMode(1);
\ 02F5 1E01 LD E,1
\ 02F7 CD0000 CALL LWRD SetTextOutMode
218 ResShowMultiString(DRMTIMEM,g_comval.langid,255,1);
\ 02FA 0E01 LD C,1
\ 02FC C5 PUSH BC
\ 02FD 0EFF LD C,255
\ 02FF C5 PUSH BC
\ 0300 ED4B0C00 LD BC,(g_comval+12)
\ 0304 115402 LD DE,596
\ 0307 3E00 LD A,BYTE3 ResShowMultiString
\ 0309 210000 LD HL,LWRD ResShowMultiString
\ 030C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 030F F1 POP AF
\ 0310 F1 POP AF
219 SetTextOutMode(0);
\ 0311 1E00 LD E,0
\ 0313 CD0000 CALL LWRD SetTextOutMode
220 SetPenColor(Color_WHITE_def);
\ 0316 010000 LD BC,0
\ 0319 11FFFF LD DE,65535
\ 031C CD0000 CALL LWRD SetPenColor
221 output8(0x4e,input8(0x4e)|0x08);
\ 031F DB4E IN A,(78)
\ 0321 CBDF SET 3,A
\ 0323 D34E OUT (78),A
222 need_draw_backgroud = FALSE;
\ 0325 DD36D200 LD (IX-46),0
\ 0329 ?0057:
223 }
224
225 //显示时钟
226 if(need_draw)
\ 0329 AF XOR A
\ 032A DDB6CF OR (IX-49)
\ 032D CA4D05 JP Z,?0059
\ 0330 ?0058:
227 {
228 if(bTimeAdd==0xff)
\ 0330 DD46D5 LD B,(IX-43)
\ 0333 04 INC B
\ 0334 2055 JR NZ,?0063
\ 0336 ?0060:
229 {
230 result = TM_GetGWDate(&date, 0);
\ 0336 0E00 LD C,0
\ 0338 210C00 LD HL,12
\ 033B 39 ADD HL,SP
\ 033C 5D LD E,L
\ 033D 54 LD D,H
\ 033E CD0000 CALL LWRD TM_GetGWDate
\ 0341 DD77CD LD (IX-51),A
231
232 result = TM_GetGWTime(&time);
\ 0344 211000 LD HL,16
\ 0347 39 ADD HL,SP
\ 0348 5D LD E,L
\ 0349 54 LD D,H
\ 034A CD0000 CALL LWRD TM_GetGWTime
\ 034D DD77CD LD (IX-51),A
233
234 result = TM_GetGWDate(&date1, 0); //修改前一刻的时间备份,用于修改后比较
\ 0350 0E00 LD C,0
\ 0352 211800 LD HL,24
\ 0355 39 ADD HL,SP
\ 0356 5D LD E,L
\ 0357 54 LD D,H
\ 0358 CD0000 CALL LWRD TM_GetGWDate
\ 035B DD77CD LD (IX-51),A
235
236 result = TM_GetGWTime(&time1); //修改前一刻的时间备份,用于修改后比较
\ 035E 211400 LD HL,20
\ 0361 39 ADD HL,SP
\ 0362 5D LD E,L
\ 0363 54 LD D,H
\ 0364 CD0000 CALL LWRD TM_GetGWTime
\ 0367 DD77CD LD (IX-51),A
237
238 //系统时间没作2098限制,ap层限制
239 if ( date.year >= 2099 ) //2000~2098
\ 036A 013308 LD BC,2099
\ 036D DD6ED6 LD L,(IX-42)
\ 0370 DD66D7 LD H,(IX-41)
\ 0373 A7 AND A
\ 0374 ED42 SBC HL,BC
\ 0376 3813 JR C,?0063
\ 0378 ?0062:
240 {
241 date.year = 2000;
\ 0378 DD36D6D0 LD (IX-42),208
\ 037C DD36D707 LD (IX-41),7
242 TM_SetGWDate(&date, 0);
\ 0380 0E00 LD C,0
\ 0382 210C00 LD HL,12
\ 0385 39 ADD HL,SP
\ 0386 5D LD E,L
\ 0387 54 LD D,H
\ 0388 CD0000 CALL LWRD TM_SetGWDate
\ 038B ?0063:
\ 038B ?0061:
243
244
245 }
246 }
247
248 itoa_4(date.year, buf);
\ 038B 211E00 LD HL,30
\ 038E 39 ADD HL,SP
\ 038F 4D LD C,L
\ 0390 44 LD B,H
\ 0391 DD5ED6 LD E,(IX-42)
\ 0394 DD56D7 LD D,(IX-41)
\ 0397 3E00 LD A,BYTE3 itoa_4
\ 0399 210000 LD HL,LWRD itoa_4
\ 039C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
249 SetTextPos(23,92);
\ 039F 0E5C LD C,92
\ 03A1 1E17 LD E,23
\ 03A3 CD0000 CALL LWRD SetTextPos
250 if(set_what == 1)
\ 03A6 DD46CE LD B,(IX-50)
\ 03A9 05 DEC B
\ 03AA 2016 JR NZ,?0065
\ 03AC ?0064:
251 {
252 SetBackgdColor(Color_BLACK_def);
\ 03AC 010000 LD BC,0
\ 03AF 110000 LD DE,0
\ 03B2 CD0000 CALL LWRD SetBackgdColor
253 PutS(buf, -1);
\ 03B5 0EFF LD C,255
\ 03B7 211E00 LD HL,30
\ 03BA 39 ADD HL,SP
\ 03BB 5D LD E,L
\ 03BC 54 LD D,H
\ 03BD CD0000 CALL LWRD PutS
254 }
255 else
\ 03C0 1814 JR ?0066
\ 03C2 ?0065:
256 {
257 SetBackgdColor(0x930);
\ 03C2 010000 LD BC,0
\ 03C5 113009 LD DE,2352
\ 03C8 CD0000 CALL LWRD SetBackgdColor
258 PutS(buf, -1);
\ 03CB 0EFF LD C,255
\ 03CD 211E00 LD HL,30
\ 03D0 39 ADD HL,SP
\ 03D1 5D LD E,L
\ 03D2 54 LD D,H
\ 03D3 CD0000 CALL LWRD PutS
\ 03D6 ?0066:
259 }
260
261 itoa_2(date.month, buf);
\ 03D6 211E00 LD HL,30
\ 03D9 39 ADD HL,SP
\ 03DA 4D LD C,L
\ 03DB 44 LD B,H
\ 03DC DD5ED8 LD E,(IX-40)
\ 03DF 3E00 LD A,BYTE3 itoa_2
\ 03E1 210000 LD HL,LWRD itoa_2
\ 03E4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
262 SetTextPos(88,92);
\ 03E7 0E5C LD C,92
\ 03E9 1E58 LD E,88
\ 03EB CD0000 CALL LWRD SetTextPos
263 if(set_what == 2)
\ 03EE DD46CE LD B,(IX-50)
\ 03F1 05 DEC B
\ 03F2 05 DEC B
\ 03F3 2016 JR NZ,?0068
\ 03F5 ?0067:
264 {
265 SetBackgdColor(Color_BLACK_def);
\ 03F5 010000 LD BC,0
\ 03F8 110000 LD DE,0
\ 03FB CD0000 CALL LWRD SetBackgdColor
266 PutS(buf, -1);
\ 03FE 0EFF LD C,255
\ 0400 211E00 LD HL,30
\ 0403 39 ADD HL,SP
\ 0404 5D LD E,L
\ 0405 54 LD D,H
\ 0406 CD0000 CALL LWRD PutS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -