📄 ui_main.lst
字号:
193 {
\ 020C C5 PUSH BC
\ 020D D5 PUSH DE
194 SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
\ 020E 0E6E LD C,110
\ 0210 ?0050:
\ 0210 1E2D LD E,45
\ 0212 CD0000 CALL LWRD SetTextPos
195 PutS(string, -1);
\ 0215 0EFF LD C,255
\ 0217 210000 LD HL,0
\ 021A 39 ADD HL,SP
\ 021B 5E LD E,(HL)
\ 021C 23 INC HL
\ 021D 56 LD D,(HL)
\ 021E CD0000 CALL LWRD PutS
196 }
\ 0221 E1 POP HL
\ 0222 C1 POP BC
\ 0223 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0226 ui_show_g:
197
198 void ui_show_g(const char *string) //文件名显示
199 {
\ 0226 C5 PUSH BC
\ 0227 D5 PUSH DE
200 SetTextPos(POS_FILENAME, POSY_FILENAME);
\ 0228 0E4F LD C,79
\ 022A C31002 JP LWRD ?0050
201 PutS(string, -1);
202 }
\ 022D ui_show_vol:
203
204 void ui_show_vol(BYTE volume) //显示音量信息
205 {
\ 022D D5 PUSH DE
206 /*
207 char temp[3];
208 itoa_2(volume, temp);
209 main_ResShowPic(TVNUM0+temp[0]-0x30,POS_VOl,POSY_VOl);
210 main_ResShowPic(TVNUM0+temp[1]-0x30,POS_VOl+6,POSY_VOl);
211 */
212 }
\ 022E E1 POP HL
\ 022F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0232 ui_show_bitrate:
213
214 void ui_show_bitrate(int bitvalue) //显示比特率
215 {
\ 0232 C5 PUSH BC
\ 0233 D5 PUSH DE
\ 0234 F5 PUSH AF
\ 0235 F5 PUSH AF
216 char temp[4];
217 itoa_3(bitvalue,temp);
\ 0236 210000 LD HL,0
\ 0239 39 ADD HL,SP
\ 023A 4D LD C,L
\ 023B 44 LD B,H
\ 023C 3E00 LD A,BYTE3 itoa_3
\ 023E 214200 LD HL,LWRD itoa_3
\ 0241 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
218 main_ResShowPic(MBIT0+temp[0]-0x30,POS_BITRATE,POSY_BITRATE);
\ 0244 0E04 LD C,4
\ 0246 C5 PUSH BC
\ 0247 0E09 LD C,9
\ 0249 210200 LD HL,2
\ 024C 39 ADD HL,SP
\ 024D CD7C01 CALL LWRD ?0054
\ 0250 F1 POP AF
219 main_ResShowPic(MBIT0+temp[1]-0x30,POS_BITRATE+6,POSY_BITRATE);
\ 0251 0E04 LD C,4
\ 0253 C5 PUSH BC
\ 0254 0E0F LD C,15
\ 0256 210300 LD HL,3
\ 0259 39 ADD HL,SP
\ 025A CD7C01 CALL LWRD ?0054
\ 025D F1 POP AF
220 main_ResShowPic(MBIT0+temp[2]-0x30,POS_BITRATE+12,POSY_BITRATE);
\ 025E 0E04 LD C,4
\ 0260 C5 PUSH BC
\ 0261 0E15 LD C,21
\ 0263 210400 LD HL,4
\ 0266 39 ADD HL,SP
\ 0267 CD7C01 CALL LWRD ?0054
\ 026A F1 POP AF
221
222 }
\ 026B E1 POP HL
\ 026C E1 POP HL
\ 026D E1 POP HL
\ 026E C1 POP BC
\ 026F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0272 ui_show_batt:
223
224 /* event r: reset
225 * event l: battery empty
226 * event h: battery full
227 * event n: nmi, auto standby
228 * event r1: stop recording point, file < 32M
229 * event r2: stop recording point, file > 32M
230 *
231 * value voltage 碱性电池 镍氢电池 锂电池
232 * 0 0.90 r
233 * 1 0.94
234 * 2 0.98 n r
235 * 3 1.02
236 * 4 1.06 l,r1 n
237 * 5 1.10 r2 l,r1
238 * 6 1.14 r2
239 * 7 1.18
240 * 8 1.22
241 * 9 1.26
242 * 10 1.30 n
243 * 11 1.34 l,r1
244 * 12 1.38 h h r2
245 * 13 1.42
246 * 14 1.46
247 * 15 1.50 h
248 */
249 //0~15, -1 表示正在充电
250 void ui_show_batt(int value, char batt_type, bool fmflag)
251 {
\ 0272 DDE5 PUSH IX
\ 0274 C5 PUSH BC
252 static int cur_value=0; //当前电量值
253
254 value = input8(0x9c);
\ 0275 DB9C IN A,(156)
\ 0277 6F LD L,A
\ 0278 2600 LD H,0
\ 027A E5 PUSH HL
\ 027B DDE1 POP IX
255
256 //ASSERT(value == -1 || (value >= 0 && value <= 15));
257 if(GetUsbCableStatus()&&(input8(0x9c)<0xe4))
\ 027D CD0000 CALL LWRD GetUsbCableStatus
\ 0280 B7 OR A
\ 0281 281F JR Z,?0012
\ 0283 DB9C IN A,(156)
\ 0285 FEE4 CP 228
\ 0287 3019 JR NC,?0012
\ 0289 ?0014:
\ 0289 ?0013:
\ 0289 ?0011:
258 {
259 cur_value++;
\ 0289 2A0000 LD HL,(?0010)
\ 028C 23 INC HL
\ 028D 220000 LD (?0010),HL
260 if(cur_value > 8) cur_value = 0;
\ 0290 4D LD C,L
\ 0291 44 LD B,H
\ 0292 210800 LD HL,8
\ 0295 F680 OR 128
\ 0297 ED42 SBC HL,BC
\ 0299 E29D02 JP PO,?0038
\ 029C AC XOR H
\ 029D ?0038:
\ 029D F2DB02 JP P,?0023
\ 02A0 ?0015:
\ 02A0 180D JR ?0043
\ 02A2 ?0016:
261 }
262 else
\ 02A2 ?0012:
263 {
264 if(value < 154) cur_value = 0; //batt empty
\ 02A2 019A80 LD BC,32922
\ 02A5 DDE5 PUSH IX
\ 02A7 E1 POP HL
\ 02A8 78 LD A,B
\ 02A9 AC XOR H
\ 02AA 67 LD H,A
\ 02AB ED42 SBC HL,BC
\ 02AD 3005 JR NC,?0019
\ 02AF ?0018:
\ 02AF ?0043:
\ 02AF 210000 LD HL,0
\ 02B2 1813 JR ?0040
\ 02B4 ?0019:
265 else if(value > 212)cur_value = 8;
\ 02B4 DDE5 PUSH IX
\ 02B6 C1 POP BC
\ 02B7 21D400 LD HL,212
\ 02BA B5 OR L
\ 02BB ED42 SBC HL,BC
\ 02BD E2C102 JP PO,?0039
\ 02C0 AC XOR H
\ 02C1 ?0039:
\ 02C1 F2CC02 JP P,?0022
\ 02C4 ?0021:
\ 02C4 210800 LD HL,8
\ 02C7 ?0040:
\ 02C7 220000 LD (?0010),HL
\ 02CA 180F JR ?0023
\ 02CC ?0022:
266 else cur_value = (value - 154) / 8; // zxs change
\ 02CC 2166FF LD HL,65382
\ 02CF 09 ADD HL,BC
\ 02D0 EB EX DE,HL
\ 02D1 010800 LD BC,8
\ 02D4 CD0000 CALL LWRD ?SS_DIV_L02
\ 02D7 ED530000 LD (?0010),DE
\ 02DB ?0023:
\ 02DB ?0020:
\ 02DB ?0017:
267 }
268 if(!fmflag)
\ 02DB ?0024:
269 main_ResShowPic(BATTERY1+cur_value, 153,4);
270 else
\ 02DB ?0025:
271 main_ResShowPic(BATTERY1+cur_value, 153,4);
\ 02DB 0E04 LD C,4
\ 02DD C5 PUSH BC
\ 02DE 0E99 LD C,153
\ 02E0 210D00 LD HL,13
\ 02E3 ED5B0000 LD DE,(?0010)
\ 02E7 CD8201 CALL LWRD ?0055
\ 02EA F1 POP AF
\ 02EB ?0026:
272 }
\ 02EB E1 POP HL
\ 02EC DDE1 POP IX
\ 02EE C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02F1 ui_show_lock:
273
274 char ui_show_lock(char islock)
275 {
\ 02F1 C5 PUSH BC
\ 02F2 D5 PUSH DE
276 if(islock == 1)
\ 02F3 43 LD B,E
\ 02F4 05 DEC B
\ 02F5 2007 JR NZ,?0028
\ 02F7 ?0027:
277 main_ResShowPic(HOLD,0,0);
\ 02F7 48 LD C,B
\ 02F8 C5 PUSH BC
\ 02F9 119C00 LD DE,156
\ 02FC 1806 JR ?0045
278 else
\ 02FE ?0028:
279 main_ResShowPic(UNHOLD,0,0);
\ 02FE 0E00 LD C,0
\ 0300 C5 PUSH BC
\ 0301 111501 LD DE,277
\ 0304 ?0045:
\ 0304 CD8401 CALL LWRD ?0053
\ 0307 F1 POP AF
\ 0308 ?0029:
280 //wait 1.5s
281 return ap_sleep(3);
\ 0308 110300 LD DE,3
\ 030B 3E00 LD A,BYTE3 ap_sleep
\ 030D 210000 LD HL,LWRD ap_sleep
\ 0310 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
282 }
\ 0313 F1 POP AF
\ 0314 C1 POP BC
\ 0315 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0000 RSEG IDATA0
\ 0000 ?0010:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 792
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -