📄 ui_main_for_rec.lst
字号:
\ 026F E1 POP HL
\ 0270 C1 POP BC
\ 0271 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0274 ui_show_g:
199
200 void ui_show_g(const char *string) //文件名显示
201 {
\ 0274 C5 PUSH BC
\ 0275 D5 PUSH DE
202 SetTextPos(100, 34);
\ 0276 0E22 LD C,34
\ 0278 1E64 LD E,100
\ 027A C36002 JP LWRD ?0086
203 PutS(string, -1);
204 }
\ 027D ui_show_batt:
205
206
207 /* event r: reset
208 * event l: battery empty
209 * event h: battery full
210 * event n: nmi, auto standby
211 * event r1: stop recording point, file < 32M
212 * event r2: stop recording point, file > 32M
213 *
214 * value voltage 碱性电池 镍氢电池 锂电池
215 * 0 0.90 r
216 * 1 0.94
217 * 2 0.98 n r
218 * 3 1.02
219 * 4 1.06 l,r1 n
220 * 5 1.10 r2 l,r1
221 * 6 1.14 r2
222 * 7 1.18
223 * 8 1.22
224 * 9 1.26
225 * 10 1.30 n
226 * 11 1.34 l,r1
227 * 12 1.38 h h r2
228 * 13 1.42
229 * 14 1.46
230 * 15 1.50 h
231 */
232 //0~15, -1 表示正在充电
233 void ui_show_batt(int value, char batt_type,bool fmflag)
234 {
\ 027D DDE5 PUSH IX
\ 027F C5 PUSH BC
\ 0280 D5 PUSH DE
\ 0281 DDE1 POP IX
235 static int cur_value=0; //当前电量值
236
237
238 if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
\ 0283 1E00 LD E,0
\ 0285 CD0000 CALL LWRD sKY_ChargeSet
\ 0288 B7 OR A
\ 0289 281F JR Z,?0009
\ 028B DB9C IN A,(156)
\ 028D FEE4 CP 228
\ 028F 3019 JR NC,?0009
\ 0291 ?0011:
\ 0291 ?0010:
\ 0291 ?0008:
239 {
240 cur_value++;
\ 0291 2A0000 LD HL,(?0007)
\ 0294 23 INC HL
\ 0295 220000 LD (?0007),HL
241 if(cur_value > 8) cur_value = 0;
\ 0298 4D LD C,L
\ 0299 44 LD B,H
\ 029A 210800 LD HL,8
\ 029D F680 OR 128
\ 029F ED42 SBC HL,BC
\ 02A1 E2A502 JP PO,?0065
\ 02A4 AC XOR H
\ 02A5 ?0065:
\ 02A5 F24403 JP P,?0040
\ 02A8 ?0012:
\ 02A8 186E JR ?0080
\ 02AA ?0013:
242 }
243 else
\ 02AA ?0009:
244 {
245 if(batt_type == BATT_TYPE_ALKALINE) //碱性电池
\ 02AA AF XOR A
\ 02AB B1 OR C
\ 02AC 2028 JR NZ,?0016
\ 02AE ?0015:
246 {
247 if(value < 62) cur_value = 0; //batt empty
\ 02AE 013E80 LD BC,32830
\ 02B1 DDE5 PUSH IX
\ 02B3 E1 POP HL
\ 02B4 78 LD A,B
\ 02B5 AC XOR H
\ 02B6 67 LD H,A
\ 02B7 ED42 SBC HL,BC
\ 02B9 385D JR C,?0080
\ 02BB ?0017:
\ 02BB ?0018:
248 else if(value > 116 ) cur_value = 8; //batt full
\ 02BB DDE5 PUSH IX
\ 02BD C1 POP BC
\ 02BE 217400 LD HL,116
\ 02C1 F680 OR 128
\ 02C3 ED42 SBC HL,BC
\ 02C5 E2C902 JP PO,?0066
\ 02C8 AC XOR H
\ 02C9 ?0066:
\ 02C9 FA2D03 JP M,?0079
\ 02CC ?0020:
\ 02CC ?0021:
249 else cur_value = (value - 62) / 7; // 116 - 62
\ 02CC 21C2FF LD HL,65474
\ 02CF 09 ADD HL,BC
\ 02D0 EB EX DE,HL
\ 02D1 010700 LD BC,7
\ 02D4 1867 JR ?0073
\ 02D6 ?0022:
\ 02D6 ?0019:
\ 02D6 ?0016:
250 }
251 else if(batt_type == BATT_TYPE_NIH) //镍氢电池
\ 02D6 41 LD B,C
\ 02D7 05 DEC B
\ 02D8 2028 JR NZ,?0025
\ 02DA ?0024:
252 {
253 if(value < 69) cur_value = 0; //batt empty
\ 02DA 014580 LD BC,32837
\ 02DD DDE5 PUSH IX
\ 02DF E1 POP HL
\ 02E0 78 LD A,B
\ 02E1 AC XOR H
\ 02E2 67 LD H,A
\ 02E3 ED42 SBC HL,BC
\ 02E5 3831 JR C,?0080
\ 02E7 ?0026:
\ 02E7 ?0027:
254 else if(value > 116 ) cur_value = 8; //batt full
\ 02E7 DDE5 PUSH IX
\ 02E9 C1 POP BC
\ 02EA 217400 LD HL,116
\ 02ED F680 OR 128
\ 02EF ED42 SBC HL,BC
\ 02F1 E2F502 JP PO,?0067
\ 02F4 AC XOR H
\ 02F5 ?0067:
\ 02F5 FA2D03 JP M,?0079
\ 02F8 ?0029:
\ 02F8 ?0030:
255 else cur_value = (value - 69) / 6;
\ 02F8 21BBFF LD HL,65467
\ 02FB 09 ADD HL,BC
\ 02FC EB EX DE,HL
\ 02FD 010600 LD BC,6
\ 0300 183B JR ?0073
\ 0302 ?0031:
\ 0302 ?0028:
\ 0302 ?0025:
256 }
257 else if(batt_type == BATT_TYPE_LITHIUM) //锂电池 3.5~4.2 工作电压 //
\ 0302 210000 LD HL,0
\ 0305 39 ADD HL,SP
\ 0306 46 LD B,(HL)
\ 0307 05 DEC B
\ 0308 05 DEC B
\ 0309 2039 JR NZ,?0040
\ 030B ?0033:
258 {
259 if(value < 175) cur_value = 0; //batt empty
\ 030B 01AF80 LD BC,32943
\ 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,?0036
\ 0318 ?0035:
\ 0318 ?0080:
\ 0318 210000 LD HL,0
\ 031B 1813 JR ?0071
\ 031D ?0036:
260 else if(value > 201)cur_value = 8;
\ 031D DDE5 PUSH IX
\ 031F C1 POP BC
\ 0320 21C900 LD HL,201
\ 0323 B5 OR L
\ 0324 ED42 SBC HL,BC
\ 0326 E22A03 JP PO,?0068
\ 0329 AC XOR H
\ 032A ?0068:
\ 032A F23503 JP P,?0039
\ 032D ?0038:
\ 032D ?0079:
\ 032D 210800 LD HL,8
\ 0330 ?0071:
\ 0330 220000 LD (?0007),HL
\ 0333 180F JR ?0040
\ 0335 ?0039:
261 else cur_value = (value - 175) / 4; // zxs change
\ 0335 2151FF LD HL,65361
\ 0338 09 ADD HL,BC
\ 0339 EB EX DE,HL
\ 033A 010400 LD BC,4
\ 033D ?0073:
\ 033D CD0000 CALL LWRD ?SS_DIV_L02
\ 0340 ED530000 LD (?0007),DE
\ 0344 ?0040:
\ 0344 ?0037:
262 }
263 else ASSERT(FALSE);
\ 0344 ?0034:
\ 0344 ?0041:
\ 0344 ?0032:
\ 0344 ?0023:
\ 0344 ?0014:
264 }
265 if(!fmflag)
\ 0344 ?0042:
266 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
267 else
\ 0344 ?0043:
268 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
\ 0344 0EA2 LD C,162
\ 0346 C5 PUSH BC
\ 0347 0EC1 LD C,193
\ 0349 211300 LD HL,19
\ 034C ED5B0000 LD DE,(?0007)
\ 0350 CD8201 CALL LWRD ?0090
\ 0353 F1 POP AF
\ 0354 ?0044:
269 }
\ 0354 E1 POP HL
\ 0355 DDE1 POP IX
\ 0357 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 035A ui_show_lock:
270
271 char ui_show_lock(char islock)
272 {
\ 035A C5 PUSH BC
\ 035B D5 PUSH DE
273 if(islock == 1)
\ 035C 43 LD B,E
\ 035D 05 DEC B
\ 035E 201E JR NZ,?0046
\ 0360 ?0045:
274 {
275 SetBackgdColor(Color_BULE1_def);
\ 0360 48 LD C,B
\ 0361 113E75 LD DE,30014
\ 0364 CD0000 CALL LWRD SetBackgdColor
276 ClearScreen(NULL);
\ 0367 110000 LD DE,0
\ 036A CD0000 CALL LWRD ClearScreen
277 ResShowPic(UDLOCK_S,86,80);
\ 036D 0E50 LD C,80
\ 036F C5 PUSH BC
\ 0370 0E56 LD C,86
\ 0372 110800 LD DE,8
\ 0375 3E00 LD A,BYTE3 ResShowPic
\ 0377 210000 LD HL,LWRD ResShowPic
\ 037A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 037D F1 POP AF
\ 037E ?0046:
278 }
279
280 //wait 2s
281 return ap_sleep(4);
\ 037E 110400 LD DE,4
\ 0381 3E00 LD A,BYTE3 ap_sleep
\ 0383 210000 LD HL,LWRD ap_sleep
\ 0386 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
282 }
\ 0389 F1 POP AF
\ 038A C1 POP BC
\ 038B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
283
284
\ 0000 RSEG IDATA0
\ 0000 ?0007:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 910
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -