ui_main_for_music.lst
来自「MP3 整个 SDK」· LST 代码 · 共 771 行 · 第 1/3 页
LST
771 行
\ 01DC F1 POP AF
188 string++;
189 id= *string-0x30;
\ 01DD DD7E04 LD A,(IX+4)
\ 01E0 C6D0 ADD A,208
190 main_ResShowPic(PRGNUM0+id,POS_SONGTIME+78,POSY_SONGTIME);
\ 01E2 0E32 LD C,50
\ 01E4 C5 PUSH BC
\ 01E5 0E8C LD C,140
\ 01E7 CD7C01 CALL LWRD ?0046
\ 01EA F1 POP AF
191 }
\ 01EB E1 POP HL
\ 01EC DDE1 POP IX
\ 01EE C1 POP BC
\ 01EF C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01F2 ui_show_f:
192
193
194 void ui_show_f(const char *string) //文件名/滚屏显示
195 {
\ 01F2 C5 PUSH BC
\ 01F3 D5 PUSH DE
196 SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
\ 01F4 0E6E LD C,110
\ 01F6 ?0042:
\ 01F6 1E2D LD E,45
\ 01F8 CD0000 CALL LWRD SetTextPos
197 PutS(string, -1);
\ 01FB 0EFF LD C,255
\ 01FD 210000 LD HL,0
\ 0200 39 ADD HL,SP
\ 0201 5E LD E,(HL)
\ 0202 23 INC HL
\ 0203 56 LD D,(HL)
\ 0204 CD0000 CALL LWRD PutS
198 }
\ 0207 E1 POP HL
\ 0208 C1 POP BC
\ 0209 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 020C ui_show_g:
199
200 void ui_show_g(const char *string) //文件名显示
201 {
\ 020C C5 PUSH BC
\ 020D D5 PUSH DE
202 SetTextPos(POS_FILENAME, POSY_FILENAME);
\ 020E 0E4F LD C,79
\ 0210 C3F601 JP LWRD ?0042
203 PutS(string, -1);
204 }
\ 0213 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 {
\ 0213 DDE5 PUSH IX
\ 0215 C5 PUSH BC
\ 0216 D5 PUSH DE
\ 0217 DDE1 POP IX
235 static int cur_value=0; //当前电量值
236
237 //ASSERT(value == -1 || (value >= 0 && value <= 15));
238 // if((charge_flag==1)&&((input8(0xbe)&0x10)!=0))
239 // value=-1;
240
241 if((sKY_ChargeSet(0)!=0)&&(input8(0x9c)<0xe4))
\ 0219 1E00 LD E,0
\ 021B CD0000 CALL LWRD sKY_ChargeSet
\ 021E B7 OR A
\ 021F 281F JR Z,?0009
\ 0221 DB9C IN A,(156)
\ 0223 FEE4 CP 228
\ 0225 3019 JR NC,?0009
\ 0227 ?0011:
\ 0227 ?0010:
\ 0227 ?0008:
242 {
243 cur_value++;
\ 0227 2A0000 LD HL,(?0007)
\ 022A 23 INC HL
\ 022B 220000 LD (?0007),HL
244 if(cur_value > 8) cur_value = 0;
\ 022E 4D LD C,L
\ 022F 44 LD B,H
\ 0230 210800 LD HL,8
\ 0233 F680 OR 128
\ 0235 ED42 SBC HL,BC
\ 0237 E23B02 JP PO,?0032
\ 023A AC XOR H
\ 023B ?0032:
\ 023B F27902 JP P,?0020
\ 023E ?0012:
\ 023E 180D JR ?0037
\ 0240 ?0013:
245 }
246 else
\ 0240 ?0009:
247 {
248 //if(batt_type == BATT_TYPE_ALKALINE) //碱性电池
249 //{
250 // if(value < 62) cur_value = 0; //batt empty
251 // else if(value > 116 ) cur_value = 8; //batt full
252 // else cur_value = (value - 62) / 7; // 116 - 62
253 //}
254 //else if(batt_type == BATT_TYPE_NIH) //镍氢电池
255 //{
256 // if(value < 69) cur_value = 0; //batt empty
257 // else if(value > 116 ) cur_value = 8; //batt full
258 // else cur_value = (value - 69) / 6;
259 // }
260 // else if(batt_type == BATT_TYPE_LITHIUM) //锂电池 3.5~4.2 工作电压 //
261 {
262 if(value < 175) cur_value = 0; //batt empty
\ 0240 01AF80 LD BC,32943
\ 0243 DDE5 PUSH IX
\ 0245 E1 POP HL
\ 0246 78 LD A,B
\ 0247 AC XOR H
\ 0248 67 LD H,A
\ 0249 ED42 SBC HL,BC
\ 024B 3005 JR NC,?0016
\ 024D ?0015:
\ 024D ?0037:
\ 024D 210000 LD HL,0
\ 0250 1813 JR ?0034
\ 0252 ?0016:
263 else if(value > 201)cur_value = 8;
\ 0252 DDE5 PUSH IX
\ 0254 C1 POP BC
\ 0255 21C900 LD HL,201
\ 0258 B5 OR L
\ 0259 ED42 SBC HL,BC
\ 025B E25F02 JP PO,?0033
\ 025E AC XOR H
\ 025F ?0033:
\ 025F F26A02 JP P,?0019
\ 0262 ?0018:
\ 0262 210800 LD HL,8
\ 0265 ?0034:
\ 0265 220000 LD (?0007),HL
\ 0268 180F JR ?0020
\ 026A ?0019:
264 else cur_value = (value - 175) / 4; // zxs change
\ 026A 2151FF LD HL,65361
\ 026D 09 ADD HL,BC
\ 026E EB EX DE,HL
\ 026F 010400 LD BC,4
\ 0272 CD0000 CALL LWRD ?SS_DIV_L02
\ 0275 ED530000 LD (?0007),DE
\ 0279 ?0020:
\ 0279 ?0017:
\ 0279 ?0014:
265 }
266 // else ASSERT(FALSE);
267 }
268 if(!fmflag)
\ 0279 ?0021:
269 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
270 else
\ 0279 ?0022:
271 main_ResShowPic(BATTERY1+cur_value, POS_BATTERY,POSY_BATTERY);
\ 0279 0EA2 LD C,162
\ 027B C5 PUSH BC
\ 027C 0EC1 LD C,193
\ 027E 211300 LD HL,19
\ 0281 ED5B0000 LD DE,(?0007)
\ 0285 CD8201 CALL LWRD ?0047
\ 0288 F1 POP AF
\ 0289 ?0023:
272 }
\ 0289 E1 POP HL
\ 028A DDE1 POP IX
\ 028C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 028F ui_show_lock:
273
274 char ui_show_lock(char islock)
275 {
\ 028F C5 PUSH BC
\ 0290 D5 PUSH DE
276 if(islock == 1)
\ 0291 43 LD B,E
\ 0292 05 DEC B
\ 0293 201E JR NZ,?0025
\ 0295 ?0024:
277 {
278 SetBackgdColor(Color_BULE1_def);
\ 0295 48 LD C,B
\ 0296 113E75 LD DE,30014
\ 0299 CD0000 CALL LWRD SetBackgdColor
279 ClearScreen(NULL);
\ 029C 110000 LD DE,0
\ 029F CD0000 CALL LWRD ClearScreen
280 ResShowPic(UDLOCK_S,86,80);
\ 02A2 0E50 LD C,80
\ 02A4 C5 PUSH BC
\ 02A5 0E56 LD C,86
\ 02A7 110800 LD DE,8
\ 02AA 3E00 LD A,BYTE3 ResShowPic
\ 02AC 210000 LD HL,LWRD ResShowPic
\ 02AF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02B2 F1 POP AF
\ 02B3 ?0025:
281 }
282
283 //wait 2s
284 return ap_sleep(4);
\ 02B3 110400 LD DE,4
\ 02B6 3E00 LD A,BYTE3 ap_sleep
\ 02B8 210000 LD HL,LWRD ap_sleep
\ 02BB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
285 }
\ 02BE F1 POP AF
\ 02BF C1 POP BC
\ 02C0 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
286
287
\ 0000 RSEG IDATA0
\ 0000 ?0007:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 707
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?