📄 ui_main_for_music.lst
字号:
\ 01CC 1E04 LD E,4
\ 01CE CD0000 CALL LWRD SetAsciiFont
195
196 SetPenColor(oldDC_sav.PenColor);
\ 01D1 210000 LD HL,0
\ 01D4 39 ADD HL,SP
\ 01D5 5E LD E,(HL)
\ 01D6 23 INC HL
\ 01D7 56 LD D,(HL)
\ 01D8 23 INC HL
\ 01D9 4E LD C,(HL)
\ 01DA 23 INC HL
\ 01DB 46 LD B,(HL)
\ 01DC CD0000 CALL LWRD SetPenColor
197 SetBackgdColor(oldDC_sav.BackgdColor);
\ 01DF 210400 LD HL,4
\ 01E2 39 ADD HL,SP
\ 01E3 5E LD E,(HL)
\ 01E4 23 INC HL
\ 01E5 56 LD D,(HL)
\ 01E6 23 INC HL
\ 01E7 4E LD C,(HL)
\ 01E8 23 INC HL
\ 01E9 46 LD B,(HL)
\ 01EA CD0000 CALL LWRD SetBackgdColor
198 }
\ 01ED 210C00 LD HL,12
\ 01F0 39 ADD HL,SP
\ 01F1 F9 LD SP,HL
\ 01F2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01F5 ui_show_f:
199
200
201 void ui_show_f(const char *string) //文件名/滚屏显示
202 {
\ 01F5 C5 PUSH BC
\ 01F6 D5 PUSH DE
203 SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
\ 01F7 0E6E LD C,110
\ 01F9 ?0048:
\ 01F9 1E2D LD E,45
\ 01FB CD0000 CALL LWRD SetTextPos
204 PutS(string, -1);
\ 01FE 0EFF LD C,255
\ 0200 210000 LD HL,0
\ 0203 39 ADD HL,SP
\ 0204 5E LD E,(HL)
\ 0205 23 INC HL
\ 0206 56 LD D,(HL)
\ 0207 CD0000 CALL LWRD PutS
205 }
\ 020A E1 POP HL
\ 020B C1 POP BC
\ 020C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 020F ui_show_g:
206
207 void ui_show_g(const char *string) //文件名显示
208 {
\ 020F C5 PUSH BC
\ 0210 D5 PUSH DE
209 SetTextPos(POS_FILENAME, POSY_FILENAME);
\ 0211 0E4F LD C,79
\ 0213 C3F901 JP LWRD ?0048
210 PutS(string, -1);
211 }
\ 0216 ui_show_batt:
212
213
214 /* event r: reset
215 * event l: battery empty
216 * event h: battery full
217 * event n: nmi, auto standby
218 * event r1: stop recording point, file < 32M
219 * event r2: stop recording point, file > 32M
220 *
221 * value voltage 碱性电池 镍氢电池 锂电池
222 * 0 0.90 r
223 * 1 0.94
224 * 2 0.98 n r
225 * 3 1.02
226 * 4 1.06 l,r1 n
227 * 5 1.10 r2 l,r1
228 * 6 1.14 r2
229 * 7 1.18
230 * 8 1.22
231 * 9 1.26
232 * 10 1.30 n
233 * 11 1.34 l,r1
234 * 12 1.38 h h r2
235 * 13 1.42
236 * 14 1.46
237 * 15 1.50 h
238 */
239 //0~15, -1 表示正在充电
240 void ui_show_batt(int value, char batt_type,bool fmflag)
241 {
\ 0216 DDE5 PUSH IX
\ 0218 C5 PUSH BC
242 static int cur_value=0; //当前电量值
243
244 value = input8(0x9c);
\ 0219 DB9C IN A,(156)
\ 021B 6F LD L,A
\ 021C 2600 LD H,0
\ 021E E5 PUSH HL
\ 021F DDE1 POP IX
245
246 if(GetUsbCableStatus()&&(input8(0x9c)<0xe4))
\ 0221 CD0000 CALL LWRD GetUsbCableStatus
\ 0224 B7 OR A
\ 0225 281F JR Z,?0010
\ 0227 DB9C IN A,(156)
\ 0229 FEE4 CP 228
\ 022B 3019 JR NC,?0010
\ 022D ?0012:
\ 022D ?0011:
\ 022D ?0009:
247 {
248 cur_value++;
\ 022D 2A0000 LD HL,(?0008)
\ 0230 23 INC HL
\ 0231 220000 LD (?0008),HL
249 if(cur_value > 8) cur_value = 0;
\ 0234 4D LD C,L
\ 0235 44 LD B,H
\ 0236 210800 LD HL,8
\ 0239 F680 OR 128
\ 023B ED42 SBC HL,BC
\ 023D E24102 JP PO,?0036
\ 0240 AC XOR H
\ 0241 ?0036:
\ 0241 F27F02 JP P,?0021
\ 0244 ?0013:
\ 0244 180D JR ?0041
\ 0246 ?0014:
250 }
251 else
\ 0246 ?0010:
252 {
253 if(value < 154) cur_value = 0; //batt empty
\ 0246 019A80 LD BC,32922
\ 0249 DDE5 PUSH IX
\ 024B E1 POP HL
\ 024C 78 LD A,B
\ 024D AC XOR H
\ 024E 67 LD H,A
\ 024F ED42 SBC HL,BC
\ 0251 3005 JR NC,?0017
\ 0253 ?0016:
\ 0253 ?0041:
\ 0253 210000 LD HL,0
\ 0256 1813 JR ?0038
\ 0258 ?0017:
254 else if(value > 212)cur_value = 8;
\ 0258 DDE5 PUSH IX
\ 025A C1 POP BC
\ 025B 21D400 LD HL,212
\ 025E B5 OR L
\ 025F ED42 SBC HL,BC
\ 0261 E26502 JP PO,?0037
\ 0264 AC XOR H
\ 0265 ?0037:
\ 0265 F27002 JP P,?0020
\ 0268 ?0019:
\ 0268 210800 LD HL,8
\ 026B ?0038:
\ 026B 220000 LD (?0008),HL
\ 026E 180F JR ?0021
\ 0270 ?0020:
255 else cur_value = (value - 154) / 8; // zxs change
\ 0270 2166FF LD HL,65382
\ 0273 09 ADD HL,BC
\ 0274 EB EX DE,HL
\ 0275 010800 LD BC,8
\ 0278 CD0000 CALL LWRD ?SS_DIV_L02
\ 027B ED530000 LD (?0008),DE
\ 027F ?0021:
\ 027F ?0018:
\ 027F ?0015:
256 }
257 if(!fmflag)
\ 027F ?0022:
258 main_ResShowPic(BATTERY1+cur_value, 153,4);
259 else
\ 027F ?0023:
260 main_ResShowPic(BATTERY1+cur_value, 153,4);
\ 027F 0E04 LD C,4
\ 0281 C5 PUSH BC
\ 0282 0E99 LD C,153
\ 0284 210D00 LD HL,13
\ 0287 ED5B0000 LD DE,(?0008)
\ 028B 19 ADD HL,DE
\ 028C EB EX DE,HL
\ 028D 3E00 LD A,BYTE3 main_ResShowPic
\ 028F 21C700 LD HL,LWRD main_ResShowPic
\ 0292 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0295 F1 POP AF
\ 0296 ?0024:
261 }
\ 0296 E1 POP HL
\ 0297 DDE1 POP IX
\ 0299 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 029C ui_show_lock:
262
263 char ui_show_lock(char islock)
264 {
\ 029C C5 PUSH BC
\ 029D D5 PUSH DE
265 if(islock == 1)
\ 029E 43 LD B,E
\ 029F 05 DEC B
\ 02A0 2007 JR NZ,?0026
\ 02A2 ?0025:
266 main_ResShowPic(HOLD,0,0);
\ 02A2 48 LD C,B
\ 02A3 C5 PUSH BC
\ 02A4 119C00 LD DE,156
\ 02A7 1806 JR ?0043
267 else
\ 02A9 ?0026:
268 main_ResShowPic(UNHOLD,0,0);
\ 02A9 0E00 LD C,0
\ 02AB C5 PUSH BC
\ 02AC 111501 LD DE,277
\ 02AF ?0043:
\ 02AF 3E00 LD A,BYTE3 main_ResShowPic
\ 02B1 21C700 LD HL,LWRD main_ResShowPic
\ 02B4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02B7 F1 POP AF
\ 02B8 ?0027:
269 //wait 1.5s
270 return ap_sleep(3);
\ 02B8 110300 LD DE,3
\ 02BB 3E00 LD A,BYTE3 ap_sleep
\ 02BD 210000 LD HL,LWRD ap_sleep
\ 02C0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
271 }
\ 02C3 F1 POP AF
\ 02C4 C1 POP BC
\ 02C5 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0000 RSEG IDATA0
\ 0000 ?0008:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 712
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -