📄 ui_main.lst
字号:
\ 01CB 110C00 LD DE,region_d2
\ 01CE CD0000 CALL LWRD UpdateScreen
\ 01D1 ?0016:
212 }
\ 01D1 E1 POP HL
\ 01D2 E1 POP HL
\ 01D3 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01D6 ?0126:
\ 01D6 CD0000 CALL LWRD SetTextPos
\ 01D9 0EFF LD C,255
\ 01DB 210000 LD HL,0
\ 01DE C9 RET
\ 01DF ?0127:
\ 01DF 5E LD E,(HL)
\ 01E0 23 INC HL
\ 01E1 56 LD D,(HL)
\ 01E2 CD0000 CALL LWRD PutS
\ 01E5 3A0000 LD A,(ui_auto_update)
\ 01E8 B7 OR A
\ 01E9 C9 RET
\ 01EA ui_show_d:
213
214 void ui_show_d(const char *string, BYTE part)
215 {
\ 01EA C5 PUSH BC
\ 01EB D5 PUSH DE
216 if(part == 0) SetTextPos(POSITION_D, 0);
\ 01EC AF XOR A
\ 01ED B1 OR C
\ 01EE 2802 JR Z,?0081
\ 01F0 ?0017:
\ 01F0 ?0018:
217 else SetTextPos(POSITION_D, 8);
\ 01F0 0E08 LD C,8
\ 01F2 ?0081:
\ 01F2 1E32 LD E,50
\ 01F4 CDD601 CALL LWRD ?0126
\ 01F7 ?0019:
218
219 PutS(string, -1);
\ 01F7 39 ADD HL,SP
\ 01F8 CDDF01 CALL LWRD ?0127
220 if(ui_auto_update) UpdateScreen(®ion_d);
\ 01FB 2806 JR Z,?0021
\ 01FD ?0020:
\ 01FD 111000 LD DE,region_d
\ 0200 CD0000 CALL LWRD UpdateScreen
\ 0203 ?0021:
221 }
\ 0203 E1 POP HL
\ 0204 E1 POP HL
\ 0205 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0208 ui_show_cd:
222
223 void ui_show_cd(const char *string, BYTE part)
224 {
\ 0208 C5 PUSH BC
\ 0209 D5 PUSH DE
225 if(part == 0) SetTextPos(POSITION_C, 0);
\ 020A AF XOR A
\ 020B B1 OR C
\ 020C 2802 JR Z,?0083
\ 020E ?0022:
\ 020E ?0023:
226 else SetTextPos(POSITION_C, 8);
\ 020E 0E08 LD C,8
\ 0210 ?0083:
\ 0210 1E26 LD E,38
\ 0212 CDD601 CALL LWRD ?0126
\ 0215 ?0024:
227
228 PutS(string, -1);
\ 0215 39 ADD HL,SP
\ 0216 CDDF01 CALL LWRD ?0127
229 if(ui_auto_update) UpdateScreen(®ion_cd);
\ 0219 2806 JR Z,?0026
\ 021B ?0025:
\ 021B 111400 LD DE,region_cd
\ 021E CD0000 CALL LWRD UpdateScreen
\ 0221 ?0026:
230 }
\ 0221 E1 POP HL
\ 0222 E1 POP HL
\ 0223 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0226 ui_show_d_pic:
231
232 void ui_show_d_pic(WORD id)
233 {
\ 0226 C5 PUSH BC
\ 0227 D5 PUSH DE
234 main_ResShowPic(id, POSITION_D, 0);
\ 0228 0E00 LD C,0
\ 022A C5 PUSH BC
\ 022B 0E32 LD C,50
\ 022D C37101 JP LWRD ?0122
235 }
\ 0230 ui_show_e:
236
237 //id =0, clear the icon
238 void ui_show_e(WORD id)
239 {
\ 0230 C5 PUSH BC
\ 0231 DDE5 PUSH IX
240 if(id == 0)
\ 0233 7B LD A,E
\ 0234 B2 OR D
\ 0235 2014 JR NZ,?0028
\ 0237 ?0027:
241 {
242 ClearScreen(®ion_e);
\ 0237 111800 LD DE,region_e
\ 023A CD0000 CALL LWRD ClearScreen
243 if(ui_auto_update) UpdateScreen(®ion_e);
\ 023D 3A0000 LD A,(ui_auto_update)
\ 0240 B7 OR A
\ 0241 2816 JR Z,?0031
\ 0243 ?0029:
\ 0243 111800 LD DE,region_e
\ 0246 CD0000 CALL LWRD UpdateScreen
\ 0249 ?0030:
\ 0249 180E JR ?0031
\ 024B ?0028:
244 }
245 else main_ResShowPic(id, POSITION_E, 0);
\ 024B 0E00 LD C,0
\ 024D C5 PUSH BC
\ 024E 0E43 LD C,67
\ 0250 3E00 LD A,BYTE3 main_ResShowPic
\ 0252 21C700 LD HL,LWRD main_ResShowPic
\ 0255 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0258 F1 POP AF
\ 0259 ?0031:
246 }
\ 0259 DDE1 POP IX
\ 025B C1 POP BC
\ 025C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 025F ui_show_f:
247
248 void ui_show_f(const char *string, BYTE part)
249 {
\ 025F C5 PUSH BC
\ 0260 D5 PUSH DE
250 if(part == 0) SetTextPos(POSITION_F, 0);
\ 0261 AF XOR A
\ 0262 B1 OR C
\ 0263 2802 JR Z,?0085
\ 0265 ?0032:
\ 0265 ?0033:
251 else SetTextPos(POSITION_F, 8);
\ 0265 0E08 LD C,8
\ 0267 ?0085:
\ 0267 1E55 LD E,85
\ 0269 CDD601 CALL LWRD ?0126
\ 026C ?0034:
252
253 PutS(string, -1);
\ 026C 39 ADD HL,SP
\ 026D CDDF01 CALL LWRD ?0127
254 if(ui_auto_update) UpdateScreen(®ion_f);
\ 0270 2806 JR Z,?0036
\ 0272 ?0035:
\ 0272 111C00 LD DE,region_f
\ 0275 CD0000 CALL LWRD UpdateScreen
\ 0278 ?0036:
255 }
\ 0278 E1 POP HL
\ 0279 E1 POP HL
\ 027A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 027D ui_show_ef:
256
257 void ui_show_ef(const char *string, BYTE part)
258 {
\ 027D C5 PUSH BC
\ 027E D5 PUSH DE
259 if(part == 0) SetTextPos(POSITION_E, 0);
\ 027F AF XOR A
\ 0280 B1 OR C
\ 0281 2802 JR Z,?0087
\ 0283 ?0037:
\ 0283 ?0038:
260 else SetTextPos(POSITION_E, 8);
\ 0283 0E08 LD C,8
\ 0285 ?0087:
\ 0285 1E43 LD E,67
\ 0287 CDD601 CALL LWRD ?0126
\ 028A ?0039:
261
262 PutS(string, -1);
\ 028A 39 ADD HL,SP
\ 028B CDDF01 CALL LWRD ?0127
263 if(ui_auto_update) UpdateScreen(®ion_ef);
\ 028E 2806 JR Z,?0041
\ 0290 ?0040:
\ 0290 112000 LD DE,region_ef
\ 0293 CD0000 CALL LWRD UpdateScreen
\ 0296 ?0041:
264 }
\ 0296 E1 POP HL
\ 0297 E1 POP HL
\ 0298 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 029B ui_show_g:
265
266 void ui_show_g(const char *string)
267 {
\ 029B C5 PUSH BC
\ 029C D5 PUSH DE
268 //show stuff
269 SetTextPos(POSITION_G, 16);
\ 029D 0E10 LD C,16
\ 029F 1E00 LD E,0
\ 02A1 CDD601 CALL LWRD ?0126
270 PutS(string, -1);
\ 02A4 39 ADD HL,SP
\ 02A5 CDDF01 CALL LWRD ?0127
271
272 if(ui_auto_update) UpdateScreen(®ion_g);
\ 02A8 2806 JR Z,?0043
\ 02AA ?0042:
\ 02AA 112400 LD DE,region_g
\ 02AD CD0000 CALL LWRD UpdateScreen
\ 02B0 ?0043:
273 }
\ 02B0 E1 POP HL
\ 02B1 C1 POP BC
\ 02B2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02B5 ui_show_batt:
274 /* event r: reset
275 * event l: battery empty
276 * event h: battery full
277 * event n: nmi, auto standby
278 * event r1: stop recording point, file < 32M
279 * event r2: stop recording point, file > 32M
280 *
281 * value voltage 碱性电池 镍氢电池 锂电池
282 * 0 0.90 r
283 * 1 0.94
284 * 2 0.98 n r
285 * 3 1.02
286 * 4 1.06 l,r1 n
287 * 5 1.10 r2 l,r1
288 * 6 1.14 r2
289 * 7 1.18
290 * 8 1.22
291 * 9 1.26
292 * 10 1.30 n
293 * 11 1.34 l,r1
294 * 12 1.38 h h r2
295 * 13 1.42
296 * 14 1.46
297 * 15 1.50 h
298 */
299 //0~15, -1 表示正在充电
300 void ui_show_batt(int value, char batt_type)
301 {
\ 02B5 DDE5 PUSH IX
\ 02B7 C5 PUSH BC
\ 02B8 D5 PUSH DE
\ 02B9 DDE1 POP IX
302 static int cur_value=0; //当前电量值
303
304 ASSERT(value == -1 || (value >= 0 && value <= 15));
305
306 if(value == -1)
\ 02BB 7B LD A,E
\ 02BC A2 AND D
\ 02BD 3C INC A
\ 02BE 2019 JR NZ,?0046
\ 02C0 ?0045:
307 {
308 cur_value++;
\ 02C0 2A0000 LD HL,(?0044)
\ 02C3 23 INC HL
\ 02C4 220000 LD (?0044),HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -