ui_main_for_music.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 717 行 · 第 1/3 页
LST
717 行
\ 01B6 ?0005:
190 SetTextPos(122, 124);
\ 01B6 1E7A LD E,122
\ 01B8 1802 JR ?0028
191 else
\ 01BA ?0006:
192 SetTextPos(6, 124);
\ 01BA 1E06 LD E,6
\ 01BC ?0028:
\ 01BC CDE401 CALL LWRD ?0046
\ 01BF ?0007:
193 PutS(string, -1);
194 SetAsciiFont(FONT_TYPE_DEFAULT);
\ 01BF 1E04 LD E,4
\ 01C1 CD0000 CALL LWRD SetAsciiFont
195
196 SetPenColor(oldDC_sav.PenColor);
\ 01C4 DD4EFA LD C,(IX-6)
\ 01C7 DD46FB LD B,(IX-5)
\ 01CA DD5EF8 LD E,(IX-8)
\ 01CD DD56F9 LD D,(IX-7)
\ 01D0 CD0000 CALL LWRD SetPenColor
197 SetBackgdColor(oldDC_sav.BackgdColor);
\ 01D3 210400 LD HL,4
\ 01D6 39 ADD HL,SP
\ 01D7 5E LD E,(HL)
\ 01D8 23 INC HL
\ 01D9 56 LD D,(HL)
\ 01DA 23 INC HL
\ 01DB 4E LD C,(HL)
\ 01DC 23 INC HL
\ 01DD 46 LD B,(HL)
\ 01DE CD0000 CALL LWRD SetBackgdColor
198 }
\ 01E1 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 01E4 ?0046:
\ 01E4 CD0000 CALL LWRD SetTextPos
\ 01E7 0EFF LD C,255
\ 01E9 DD5E02 LD E,(IX+2)
\ 01EC DD5603 LD D,(IX+3)
\ 01EF CD0000 CALL LWRD PutS
\ 01F2 C9 RET
\ 01F3 ui_show_f:
199
200
201 void ui_show_f(const char *string) //文件名/滚屏显示
202 {
\ 01F3 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
203 SetTextPos(POS_SCROLLSTRAT, POSY_SCROLL);
\ 01F6 0E6E LD C,110
\ 01F8 ?0041:
\ 01F8 1E2D LD E,45
\ 01FA CDE401 CALL LWRD ?0046
204 PutS(string, -1);
205 }
\ 01FD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0200 ui_show_g:
206
207 void ui_show_g(const char *string) //文件名显示
208 {
\ 0200 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
209 SetTextPos(POS_FILENAME, POSY_FILENAME);
\ 0203 0E4F LD C,79
\ 0205 C3F801 JP LWRD ?0041
210 PutS(string, -1);
211 }
\ 0208 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 {
\ 0208 DDE5 PUSH IX
\ 020A C5 PUSH BC
242 static int cur_value=0; //当前电量值
243
244 value = input8(0x9c);
\ 020B DB9C IN A,(156)
\ 020D 6F LD L,A
\ 020E 2600 LD H,0
\ 0210 E5 PUSH HL
\ 0211 DDE1 POP IX
245
246 if(GetUsbCableStatus()&&(input8(0x9c)<0xe4))
\ 0213 CD0000 CALL LWRD GetUsbCableStatus
\ 0216 B7 OR A
\ 0217 281A JR Z,?0010
\ 0219 DB9C IN A,(156)
\ 021B FEE4 CP 228
\ 021D 3014 JR NC,?0010
\ 021F ?0012:
\ 021F ?0011:
\ 021F ?0009:
247 {
248 cur_value++;
\ 021F 2A0000 LD HL,(?0008)
\ 0222 23 INC HL
\ 0223 220000 LD (?0008),HL
249 if(cur_value > 8) cur_value = 0;
\ 0226 4D LD C,L
\ 0227 44 LD B,H
\ 0228 210800 LD HL,8
\ 022B CD0000 CALL LWRD ?SS_CMP_L02
\ 022E 3036 JR NC,?0021
\ 0230 ?0013:
\ 0230 6C LD L,H
\ 0231 181F JR ?0033
\ 0233 ?0014:
250 }
251 else
\ 0233 ?0010:
252 {
253 if(value < 154) cur_value = 0; //batt empty
\ 0233 019A80 LD BC,32922
\ 0236 DDE5 PUSH IX
\ 0238 E1 POP HL
\ 0239 78 LD A,B
\ 023A AC XOR H
\ 023B 67 LD H,A
\ 023C ED42 SBC HL,BC
\ 023E 3005 JR NC,?0017
\ 0240 ?0016:
\ 0240 210000 LD HL,0
\ 0243 180D JR ?0033
\ 0245 ?0017:
254 else if(value > 212)cur_value = 8;
\ 0245 DDE5 PUSH IX
\ 0247 C1 POP BC
\ 0248 21D400 LD HL,212
\ 024B CD0000 CALL LWRD ?SS_CMP_L02
\ 024E 3007 JR NC,?0020
\ 0250 ?0019:
\ 0250 2E08 LD L,8
\ 0252 ?0033:
\ 0252 220000 LD (?0008),HL
\ 0255 180F JR ?0021
\ 0257 ?0020:
255 else cur_value = (value - 154) / 8; // zxs change
\ 0257 2166FF LD HL,65382
\ 025A 09 ADD HL,BC
\ 025B EB EX DE,HL
\ 025C 010800 LD BC,8
\ 025F CD0000 CALL LWRD ?SS_DIV_L02
\ 0262 ED530000 LD (?0008),DE
\ 0266 ?0021:
\ 0266 ?0018:
\ 0266 ?0015:
256 }
257 if(!fmflag)
\ 0266 ?0022:
258 main_ResShowPic(BATTERY1+cur_value, 153,4);
259 else
\ 0266 ?0023:
260 main_ResShowPic(BATTERY1+cur_value, 153,4);
\ 0266 0E04 LD C,4
\ 0268 C5 PUSH BC
\ 0269 0E99 LD C,153
\ 026B 210D00 LD HL,13
\ 026E ED5B0000 LD DE,(?0008)
\ 0272 19 ADD HL,DE
\ 0273 EB EX DE,HL
\ 0274 CD6D01 CALL LWRD ?0045
\ 0277 F1 POP AF
\ 0278 ?0024:
261 }
\ 0278 E1 POP HL
\ 0279 DDE1 POP IX
\ 027B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 027E ui_show_lock:
262
263 char ui_show_lock(char islock)
264 {
\ 027E CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
265 if(islock == 1)
\ 0281 1D DEC E
\ 0282 2007 JR NZ,?0026
\ 0284 ?0025:
266 main_ResShowPic(HOLD,0,0);
\ 0284 4B LD C,E
\ 0285 C5 PUSH BC
\ 0286 119C00 LD DE,156
\ 0289 1806 JR ?0036
267 else
\ 028B ?0026:
268 main_ResShowPic(UNHOLD,0,0);
\ 028B 0E00 LD C,0
\ 028D C5 PUSH BC
\ 028E 111501 LD DE,277
\ 0291 ?0036:
\ 0291 CD6D01 CALL LWRD ?0045
\ 0294 F1 POP AF
\ 0295 ?0027:
269 //wait 1.5s
270 return ap_sleep(3);
\ 0295 110300 LD DE,3
\ 0298 3E00 LD A,BYTE3 ap_sleep
\ 029A 210000 LD HL,LWRD ap_sleep
\ 029D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
271 }
\ 02A0 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0000 RSEG IDATA0
\ 0000 ?0008:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 0000 DEFW 0
\ 0002 END
Errors: none
Warnings: none
Code size: 675
Constant size: 2
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?