📄 ui_main.lst
字号:
\ 02AE DDE5 PUSH IX
\ 02B0 C5 PUSH BC
\ 02B1 D5 PUSH DE
\ 02B2 DDE1 POP IX
307 static int cur_value=0; //当前电量值
308 if(g_comval.BatteryType == BATT_TYPE_LITHIUM)
\ 02B4 3A0F00 LD A,(g_comval+15)
\ 02B7 3D DEC A
\ 02B8 3D DEC A
\ 02B9 204A JR NZ,?0046
\ 02BB ?0045:
309 {
310 if((input8(0x8b) & 0x01) !=0)
\ 02BB DB8B IN A,(139)
\ 02BD CB47 BIT 0,A
\ 02BF 2819 JR Z,?0048
\ 02C1 ?0047:
311 {
312 cur_value++;
\ 02C1 2A0000 LD HL,(?0044)
\ 02C4 23 INC HL
\ 02C5 220000 LD (?0044),HL
313 if(cur_value > 8) cur_value = 0;
\ 02C8 4D LD C,L
\ 02C9 44 LD B,H
\ 02CA 210800 LD HL,8
\ 02CD F680 OR 128
\ 02CF ED42 SBC HL,BC
\ 02D1 E2D502 JP PO,?0098
\ 02D4 AC XOR H
\ 02D5 ?0098:
\ 02D5 F24C03 JP P,?0070
\ 02D8 ?0049:
\ 02D8 183E JR ?0109
\ 02DA ?0050:
\ 02DA ?0048:
314 }
315 else if((input8(0x8e)&0x80) != 0) //DC 5V 的检测
\ 02DA DB8E IN A,(142)
\ 02DC CB7F BIT 7,A
\ 02DE 204E JR NZ,?0107
\ 02E0 ?0052:
316 {
317 cur_value = 8;
318 }
319 else
\ 02E0 ?0053:
320 {
321 if(value < 0x13) cur_value = 0; //batt empty
\ 02E0 011380 LD BC,32787
\ 02E3 DDE5 PUSH IX
\ 02E5 E1 POP HL
\ 02E6 78 LD A,B
\ 02E7 AC XOR H
\ 02E8 67 LD H,A
\ 02E9 ED42 SBC HL,BC
\ 02EB 382B JR C,?0109
\ 02ED ?0055:
\ 02ED ?0056:
322 else if(value >0x17)
\ 02ED DDE5 PUSH IX
\ 02EF C1 POP BC
\ 02F0 211700 LD HL,23
\ 02F3 F680 OR 128
\ 02F5 ED42 SBC HL,BC
\ 02F7 E2FB02 JP PO,?0099
\ 02FA AC XOR H
\ 02FB ?0099:
\ 02FB FA2E03 JP M,?0107
\ 02FE ?0058:
323 {
324 cur_value = 8;
325 }
326 else
\ 02FE ?0059:
327 {
328 cur_value = (value - 0x13)*2 ; //
\ 02FE 21EDFF LD HL,65517
\ 0301 09 ADD HL,BC
\ 0302 29 ADD HL,HL
\ 0303 182C JR ?0105
\ 0305 ?0060:
\ 0305 ?0057:
\ 0305 ?0054:
\ 0305 ?0051:
329 }
330 }
331 }
332 else
\ 0305 ?0046:
333 {
334 if(input8(0x8e)&0x80)
\ 0305 DB8E IN A,(142)
\ 0307 CB7F BIT 7,A
\ 0309 2023 JR NZ,?0107
\ 030B ?0062:
335 {
336 cur_value = 8;
337 }
338 else
\ 030B ?0063:
339 {
340 {
341 if(value < 0x10) cur_value = 0; //batt empty
\ 030B 011080 LD BC,32784
\ 030E DDE5 PUSH IX
\ 0310 E1 POP HL
\ 0311 78 LD A,B
\ 0312 AC XOR H
\ 0313 67 LD H,A
\ 0314 ED42 SBC HL,BC
\ 0316 3005 JR NC,?0066
\ 0318 ?0065:
\ 0318 ?0109:
\ 0318 210000 LD HL,0
\ 031B 1814 JR ?0105
\ 031D ?0066:
342 else if(value > 0x1b ) cur_value = 8; //batt full
\ 031D DDE5 PUSH IX
\ 031F C1 POP BC
\ 0320 211B00 LD HL,27
\ 0323 F680 OR 128
\ 0325 ED42 SBC HL,BC
\ 0327 E22B03 JP PO,?0100
\ 032A AC XOR H
\ 032B ?0100:
\ 032B F23603 JP P,?0069
\ 032E ?0068:
\ 032E ?0107:
\ 032E 210800 LD HL,8
\ 0331 ?0105:
\ 0331 220000 LD (?0044),HL
\ 0334 1816 JR ?0070
\ 0336 ?0069:
343 else cur_value = (value-0x10)*7/11;
\ 0336 21F0FF LD HL,65520
\ 0339 09 ADD HL,BC
\ 033A 4D LD C,L
\ 033B 44 LD B,H
\ 033C 110700 LD DE,7
\ 033F CD0000 CALL LWRD ?S_MUL_L02
\ 0342 010B00 LD BC,11
\ 0345 CD0000 CALL LWRD ?SS_DIV_L02
\ 0348 ED530000 LD (?0044),DE
\ 034C ?0070:
\ 034C ?0067:
\ 034C ?0064:
\ 034C ?0061:
344 }
345 }
346 }
347 main_ResShowPic(batt_id[cur_value], POSITION_BATT, 0);
\ 034C 0E00 LD C,0
\ 034E C5 PUSH BC
\ 034F 0E72 LD C,114
\ 0351 2A0000 LD HL,(?0044)
\ 0354 29 ADD HL,HL
\ 0355 112000 LD DE,batt_id
\ 0358 19 ADD HL,DE
\ 0359 5E LD E,(HL)
\ 035A 23 INC HL
\ 035B 56 LD D,(HL)
\ 035C CD7A01 CALL LWRD ?0119
\ 035F F1 POP AF
348 }
\ 0360 E1 POP HL
\ 0361 DDE1 POP IX
\ 0363 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0366 ui_show_lock:
349
350 char ui_show_lock(char islock)
351 {
\ 0366 C5 PUSH BC
\ 0367 D5 PUSH DE
352 if(islock == 1)
\ 0368 43 LD B,E
\ 0369 05 DEC B
\ 036A 2009 JR NZ,?0072
\ 036C ?0071:
353 {
354 main_ResShowPic(LOCK,0,0);
\ 036C 48 LD C,B
\ 036D C5 PUSH BC
\ 036E 11D100 LD DE,209
\ 0371 CD7A01 CALL LWRD ?0119
\ 0374 F1 POP AF
\ 0375 ?0072:
355 //if(!ui_auto_update) UpdateScreen(NULL);
356 }
357 // else ResShowLogo(0);
358 //wait 2s
359 return ap_sleep(4);
\ 0375 110400 LD DE,4
\ 0378 3E00 LD A,BYTE3 ap_sleep
\ 037A 210000 LD HL,LWRD ap_sleep
\ 037D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
360 }
\ 0380 F1 POP AF
\ 0381 C1 POP BC
\ 0382 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
361
362
\ 0000 RSEG IDATA0
\ 0000 ?0044:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0000 RSEG COM_MAIN_D
\ 0000 region_c:
\ 0000 26 DEFB '&'
\ 0001 00 DEFB 0
\ 0002 0B DEFB 11
\ 0003 10 DEFB 16
\ 0004 region_d2:
\ 0004 2C DEFB ','
\ 0005 00 DEFB 0
\ 0006 17 DEFB 23
\ 0007 10 DEFB 16
\ 0008 region_d:
\ 0008 32 DEFB '2'
\ 0009 00 DEFB 0
\ 000A 11 DEFB 17
\ 000B 10 DEFB 16
\ 000C region_cd:
\ 000C 26 DEFB '&'
\ 000D 00 DEFB 0
\ 000E 1D DEFB 29
\ 000F 10 DEFB 16
\ 0010 region_e:
\ 0010 43 DEFB 'C'
\ 0011 00 DEFB 0
\ 0012 10 DEFB 16
\ 0013 10 DEFB 16
\ 0014 region_f:
\ 0014 55 DEFB 'U'
\ 0015 00 DEFB 0
\ 0016 1D DEFB 29
\ 0017 10 DEFB 16
\ 0018 region_ef:
\ 0018 43 DEFB 'C'
\ 0019 00 DEFB 0
\ 001A 2F DEFB '/'
\ 001B 10 DEFB 16
\ 001C region_g:
\ 001C 00 DEFB 0
\ 001D 10 DEFB 16
\ 001E 80 DEFB 128
\ 001F 10 DEFB 16
\ 0020 batt_id:
\ 0020 0D00 DEFW 13
\ 0022 0E00 DEFW 14
\ 0024 0F00 DEFW 15
\ 0026 1000 DEFW 16
\ 0028 1100 DEFW 17
\ 002A 1200 DEFW 18
\ 002C 1300 DEFW 19
\ 002E 1400 DEFW 20
\ 0030 1500 DEFW 21
\ 0032 END
Errors: none
Warnings: none
Code size: 901
Constant size: 52
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -