ui_main.lst
来自「MP3 整个 SDK」· LST 代码 · 共 926 行 · 第 1/3 页
LST
926 行
\ 0270 212100 LD HL,33
\ 0273 CD8201 CALL LWRD ?0093
\ 0276 F1 POP AF
202 main_ResShowPic(MBIT0+temp[1]-0x30,POS_BITRATE+6,POSY_BITRATE);
\ 0277 0E04 LD C,4
\ 0279 C5 PUSH BC
\ 027A 0E0F LD C,15
\ 027C 210300 LD HL,3
\ 027F 39 ADD HL,SP
\ 0280 5E LD E,(HL)
\ 0281 1600 LD D,0
\ 0283 212100 LD HL,33
\ 0286 CD8201 CALL LWRD ?0093
\ 0289 F1 POP AF
203 main_ResShowPic(MBIT0+temp[2]-0x30,POS_BITRATE+12,POSY_BITRATE);
\ 028A 0E04 LD C,4
\ 028C C5 PUSH BC
\ 028D 0E15 LD C,21
\ 028F 210400 LD HL,4
\ 0292 39 ADD HL,SP
\ 0293 5E LD E,(HL)
\ 0294 1600 LD D,0
\ 0296 212100 LD HL,33
\ 0299 C34702 JP LWRD ?0088
204
205 }
\ 029C ui_show_batt:
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 {
\ 029C DDE5 PUSH IX
\ 029E C5 PUSH BC
\ 029F D5 PUSH DE
\ 02A0 DDE1 POP IX
235 static int cur_value=0; //当前电量值
236
237 //ASSERT(value == -1 || (value >= 0 && value <= 15));
238 if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
\ 02A2 1E00 LD E,0
\ 02A4 CD0000 CALL LWRD sKY_ChargeSet
\ 02A7 B7 OR A
\ 02A8 281F JR Z,?0009
\ 02AA DB9C IN A,(156)
\ 02AC FEE4 CP 228
\ 02AE 3019 JR NC,?0009
\ 02B0 ?0011:
\ 02B0 ?0010:
\ 02B0 ?0008:
239 {
240 cur_value++;
\ 02B0 2A0000 LD HL,(?0007)
\ 02B3 23 INC HL
\ 02B4 220000 LD (?0007),HL
241 if(cur_value > 8) cur_value = 0;
\ 02B7 4D LD C,L
\ 02B8 44 LD B,H
\ 02B9 210800 LD HL,8
\ 02BC F680 OR 128
\ 02BE ED42 SBC HL,BC
\ 02C0 E2C402 JP PO,?0065
\ 02C3 AC XOR H
\ 02C4 ?0065:
\ 02C4 F26303 JP P,?0040
\ 02C7 ?0012:
\ 02C7 186E JR ?0080
\ 02C9 ?0013:
242 }
243
244 else
\ 02C9 ?0009:
245 {
246 if(batt_type == BATT_TYPE_ALKALINE) //碱性电池
\ 02C9 AF XOR A
\ 02CA B1 OR C
\ 02CB 2028 JR NZ,?0016
\ 02CD ?0015:
247 {
248 if(value < 62) cur_value = 0; //batt empty
\ 02CD 013E80 LD BC,32830
\ 02D0 DDE5 PUSH IX
\ 02D2 E1 POP HL
\ 02D3 78 LD A,B
\ 02D4 AC XOR H
\ 02D5 67 LD H,A
\ 02D6 ED42 SBC HL,BC
\ 02D8 385D JR C,?0080
\ 02DA ?0017:
\ 02DA ?0018:
249 else if(value > 116 ) cur_value = 8; //batt full
\ 02DA DDE5 PUSH IX
\ 02DC C1 POP BC
\ 02DD 217400 LD HL,116
\ 02E0 F680 OR 128
\ 02E2 ED42 SBC HL,BC
\ 02E4 E2E802 JP PO,?0066
\ 02E7 AC XOR H
\ 02E8 ?0066:
\ 02E8 FA4C03 JP M,?0079
\ 02EB ?0020:
\ 02EB ?0021:
250 else cur_value = (value - 62) / 7; // 116 - 62
\ 02EB 21C2FF LD HL,65474
\ 02EE 09 ADD HL,BC
\ 02EF EB EX DE,HL
\ 02F0 010700 LD BC,7
\ 02F3 1867 JR ?0073
\ 02F5 ?0022:
\ 02F5 ?0019:
\ 02F5 ?0016:
251 }
252 else if(batt_type == BATT_TYPE_NIH) //镍氢电池
\ 02F5 41 LD B,C
\ 02F6 05 DEC B
\ 02F7 2028 JR NZ,?0025
\ 02F9 ?0024:
253 {
254 if(value < 69) cur_value = 0; //batt empty
\ 02F9 014580 LD BC,32837
\ 02FC DDE5 PUSH IX
\ 02FE E1 POP HL
\ 02FF 78 LD A,B
\ 0300 AC XOR H
\ 0301 67 LD H,A
\ 0302 ED42 SBC HL,BC
\ 0304 3831 JR C,?0080
\ 0306 ?0026:
\ 0306 ?0027:
255 else if(value > 116 ) cur_value = 8; //batt full
\ 0306 DDE5 PUSH IX
\ 0308 C1 POP BC
\ 0309 217400 LD HL,116
\ 030C F680 OR 128
\ 030E ED42 SBC HL,BC
\ 0310 E21403 JP PO,?0067
\ 0313 AC XOR H
\ 0314 ?0067:
\ 0314 FA4C03 JP M,?0079
\ 0317 ?0029:
\ 0317 ?0030:
256 else cur_value = (value - 69) / 6;
\ 0317 21BBFF LD HL,65467
\ 031A 09 ADD HL,BC
\ 031B EB EX DE,HL
\ 031C 010600 LD BC,6
\ 031F 183B JR ?0073
\ 0321 ?0031:
\ 0321 ?0028:
\ 0321 ?0025:
257 }
258 else if(batt_type == BATT_TYPE_LITHIUM) //锂电池
\ 0321 210000 LD HL,0
\ 0324 39 ADD HL,SP
\ 0325 46 LD B,(HL)
\ 0326 05 DEC B
\ 0327 05 DEC B
\ 0328 2039 JR NZ,?0040
\ 032A ?0033:
259 {
260 if(value < 175) cur_value = 0; //batt empty
\ 032A 01AF80 LD BC,32943
\ 032D DDE5 PUSH IX
\ 032F E1 POP HL
\ 0330 78 LD A,B
\ 0331 AC XOR H
\ 0332 67 LD H,A
\ 0333 ED42 SBC HL,BC
\ 0335 3005 JR NC,?0036
\ 0337 ?0035:
\ 0337 ?0080:
\ 0337 210000 LD HL,0
\ 033A 1813 JR ?0071
\ 033C ?0036:
261 else if(value > 201)cur_value = 8;
\ 033C DDE5 PUSH IX
\ 033E C1 POP BC
\ 033F 21C900 LD HL,201
\ 0342 B5 OR L
\ 0343 ED42 SBC HL,BC
\ 0345 E24903 JP PO,?0068
\ 0348 AC XOR H
\ 0349 ?0068:
\ 0349 F25403 JP P,?0039
\ 034C ?0038:
\ 034C ?0079:
\ 034C 210800 LD HL,8
\ 034F ?0071:
\ 034F 220000 LD (?0007),HL
\ 0352 180F JR ?0040
\ 0354 ?0039:
262 else cur_value = (value - 175) / 4; // zxs change
\ 0354 2151FF LD HL,65361
\ 0357 09 ADD HL,BC
\ 0358 EB EX DE,HL
\ 0359 010400 LD BC,4
\ 035C ?0073:
\ 035C CD0000 CALL LWRD ?SS_DIV_L02
\ 035F ED530000 LD (?0007),DE
\ 0363 ?0040:
\ 0363 ?0037:
263 }
264 else ASSERT(FALSE);
\ 0363 ?0034:
\ 0363 ?0041:
\ 0363 ?0032:
\ 0363 ?0023:
\ 0363 ?0014:
265 }
266 if(!fmflag)
\ 0363 ?0042:
267 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
268 else
\ 0363 ?0043:
269 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
\ 0363 0EA2 LD C,162
\ 0365 C5 PUSH BC
\ 0366 0EC1 LD C,193
\ 0368 211300 LD HL,19
\ 036B ED5B0000 LD DE,(?0007)
\ 036F CD8201 CALL LWRD ?0093
\ 0372 F1 POP AF
\ 0373 ?0044:
270 }
\ 0373 E1 POP HL
\ 0374 DDE1 POP IX
\ 0376 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0379 ui_show_lock:
271
272 char ui_show_lock(char islock)
273 {
\ 0379 C5 PUSH BC
\ 037A D5 PUSH DE
274 if(islock == 1)
\ 037B 43 LD B,E
\ 037C 05 DEC B
\ 037D 201E JR NZ,?0046
\ 037F ?0045:
275 {
276 SetBackgdColor(Color_BULE1_def);
\ 037F 48 LD C,B
\ 0380 113E75 LD DE,30014
\ 0383 CD0000 CALL LWRD SetBackgdColor
277 ClearScreen(NULL);
\ 0386 110000 LD DE,0
\ 0389 CD0000 CALL LWRD ClearScreen
278
279 ResShowPic(UDLOCK_S,86,80);
\ 038C 0E50 LD C,80
\ 038E C5 PUSH BC
\ 038F 0E56 LD C,86
\ 0391 110800 LD DE,8
\ 0394 3E00 LD A,BYTE3 ResShowPic
\ 0396 210000 LD HL,LWRD ResShowPic
\ 0399 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 039C F1 POP AF
\ 039D ?0046:
280 }
281 //wait 2s
282 return ap_sleep(4);
\ 039D 110400 LD DE,4
\ 03A0 3E00 LD A,BYTE3 ap_sleep
\ 03A2 210000 LD HL,LWRD ap_sleep
\ 03A5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
283 }
\ 03A8 F1 POP AF
\ 03A9 C1 POP BC
\ 03AA C30000 JP LWRD ?BANK_FAST_LEAVE_L08
284
285
\ 0000 RSEG IDATA0
\ 0000 ?0007:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 941
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?