ui_stop.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,139 行 · 第 1/4 页
LST
1,139 行
\ 03F9 1E01 LD E,1
\ 03FB 3E00 LD A,BYTE3 sel_prev
\ 03FD 21D700 LD HL,LWRD sel_prev
\ 0400 CDEB04 CALL LWRD ?0117
246 g_reader_vars.g_txt.PrevSeek=0;
247 g_reader_vars.g_txt.CurrentSeek=0;
248 g_reader_vars.g_txt.BufSector=0;
\ 0403 ?0062:
249 //清除多出的HOLD消息,防止按键停了还跳几曲
250 while(ap_get_message() != 0);
\ 0403 CD0000 CALL LWRD ap_get_message
\ 0406 B7 OR A
\ 0407 CA5A01 JP Z,?0023
\ 040A ?0063:
251 break;
\ 040A 18F7 JR ?0062
\ 040C ?0061:
\ 040C ?0064:
252 case AP_KEY_NEXT :
253 case AP_KEY_NEXT | AP_KEY_HOLD:
254 if(active < g_file_total - 1)
\ 040C ED4B0200 LD BC,(g_file_total)
\ 0410 0B DEC BC
\ 0411 2A0000 LD HL,(active)
\ 0414 F680 OR 128
\ 0416 ED42 SBC HL,BC
\ 0418 E21C04 JP PO,?0108
\ 041B AC XOR H
\ 041C ?0108:
\ 041C F24804 JP P,?0066
\ 041F ?0065:
255 {
256 active++;
\ 041F 2A0000 LD HL,(active)
\ 0422 23 INC HL
\ 0423 220000 LD (active),HL
257 if(active/6==cur_group)
\ 0426 010600 LD BC,6
\ 0429 EB EX DE,HL
\ 042A CD0000 CALL LWRD ?SS_DIV_L02
\ 042D DD6EF8 LD L,(IX-8)
\ 0430 DD66F9 LD H,(IX-7)
\ 0433 A7 AND A
\ 0434 ED52 SBC HL,DE
\ 0436 2015 JR NZ,?0115
\ 0438 ?0067:
258 {
259 old_active=active-1;
\ 0438 2A0000 LD HL,(active)
\ 043B 2B DEC HL
\ 043C DD75FA LD (IX-6),L
\ 043F DD74FB LD (IX-5),H
260 list_change=TRUE;
\ 0442 DD36F001 LD (IX-16),1
261 }
262 else
\ 0446 1809 JR ?0070
\ 0448 ?0068:
263 need_draw = TRUE;
\ 0448 ?0069:
264 }
265 else
\ 0448 ?0066:
266 {
267 active = 0;
\ 0448 6A LD L,D
\ 0449 62 LD H,D
\ 044A 220000 LD (active),HL
268 need_draw = TRUE;
\ 044D ?0115:
\ 044D DD36EE01 LD (IX-18),1
\ 0451 ?0070:
269 }
270 sel_next(TRUE);
\ 0451 1E01 LD E,1
\ 0453 3E00 LD A,BYTE3 sel_next
\ 0455 219400 LD HL,LWRD sel_next
\ 0458 CDEB04 CALL LWRD ?0117
271 g_reader_vars.g_txt.PrevSeek=0;
272 g_reader_vars.g_txt.CurrentSeek=0;
273 g_reader_vars.g_txt.BufSector=0;
\ 045B ?0072:
274 //清除多出的HOLD消息,防止按键停了还跳几曲
275 while(ap_get_message() != 0);
\ 045B CD0000 CALL LWRD ap_get_message
\ 045E B7 OR A
\ 045F CA5A01 JP Z,?0023
\ 0462 ?0073:
276 break;
\ 0462 18F7 JR ?0072
\ 0464 ?0071:
\ 0464 ?0074:
277 case AP_KEY_MODE:
278 g_menu_active=1;
279 break;
\ 0464 ?0075:
280 case AP_KEY_MODE|AP_KEY_UP:
281
282 if(g_menu_active) // set the mode
\ 0464 3A0000 LD A,(g_menu_active)
\ 0467 B7 OR A
\ 0468 281A JR Z,?0077
\ 046A ?0076:
283 {
284 result=MenuInReader();
\ 046A 3E00 LD A,BYTE3 MenuInReader
\ 046C 210000 LD HL,LWRD MenuInReader
\ 046F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
285 if(result==RESULT_IGNORE)
\ 0472 3E34 LD A,52
\ 0474 AD XOR L
\ 0475 B4 OR H
\ 0476 2820 JR Z,?0110
\ 0478 ?0078:
286 {
287 file_changed=TRUE;
288 break;
\ 0478 ?0079:
289 }
290 else if(result==RESULT_SD_OUT)
\ 0478 3E36 LD A,54
\ 047A AD XOR L
\ 047B B4 OR H
\ 047C 2843 JR Z,?0112
\ 047E ?0080:
291 {
292 need_sel_file = TRUE;
293 break;
\ 047E ?0081:
294 }
295 else if(result==0)
\ 047E 7D LD A,L
\ 047F B4 OR H
\ 0480 201D JR NZ,?0086
\ 0482 ?0082:
296 {
297 need_sel_file = TRUE;
\ 0482 183D JR ?0112
298 break;
\ 0484 ?0083:
299 }
300 else
301 return result;
302 }
\ 0484 ?0077:
303 else
304 g_menu_active=TRUE;
\ 0484 3E01 LD A,1
\ 0486 320000 LD (g_menu_active),A
305 break;
\ 0489 C35A01 JP LWRD ?0023
\ 048C ?0084:
306
307 case AP_KEY_PLAY | AP_KEY_UP:
308 result=do_play();
\ 048C 3E00 LD A,BYTE3 do_play
\ 048E 210000 LD HL,LWRD do_play
\ 0491 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
309 if(result==0)
\ 0494 7D LD A,L
\ 0495 B4 OR H
\ 0496 2007 JR NZ,?0086
\ 0498 ?0085:
310 {
311 file_changed=TRUE;
\ 0498 ?0110:
\ 0498 DD36EF01 LD (IX-17),1
312 break;
\ 049C C35A01 JP LWRD ?0023
\ 049F ?0086:
313 }
314 else
315 return result;
316 case AP_MSG_SD_OUT:
\ 049F 183F JR ?0096
\ 04A1 ?0087:
317 if (g_reader_vars.location.disk == 'H')
\ 04A1 3A0600 LD A,(g_reader_vars+6)
\ 04A4 FE48 CP 72
\ 04A6 2021 JR NZ,?0089
\ 04A8 ?0088:
318 {
319 g_reader_vars.location.disk = 'C';
\ 04A8 3E43 LD A,67
\ 04AA 320600 LD (g_reader_vars+6),A
320 ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
\ 04AD ED4B0C00 LD BC,(g_comval+12)
\ 04B1 42 LD B,D
\ 04B2 C5 PUSH BC
\ 04B3 018A01 LD BC,394
\ 04B6 59 LD E,C
\ 04B7 50 LD D,B
\ 04B8 3E00 LD A,BYTE3 ui_err_msg
\ 04BA 210000 LD HL,LWRD ui_err_msg
\ 04BD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04C0 F1 POP AF
321 need_sel_file=TRUE;
\ 04C1 ?0112:
\ 04C1 3E01 LD A,1
\ 04C3 320400 LD (need_sel_file),A
322 break;
\ 04C6 C35A01 JP LWRD ?0023
\ 04C9 ?0089:
\ 04C9 ?0090:
323 }
324
325 default:
326 key = ap_handle_hotkey( key);
\ 04C9 CD0000 CALL LWRD ap_handle_hotkey
\ 04CC 4F LD C,A
327 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 04CD 3E32 LD A,50
\ 04CF A9 XOR C
\ 04D0 2007 JR NZ,?0092
\ 04D2 ?0091:
\ 04D2 DD36EE01 LD (IX-18),1
\ 04D6 C35A01 JP LWRD ?0023
\ 04D9 ?0092:
328 else if(key != 0) return key;
\ 04D9 79 LD A,C
\ 04DA B7 OR A
\ 04DB CA5A01 JP Z,?0023
\ 04DE ?0094:
\ 04DE 69 LD L,C
\ 04DF 60 LD H,B
329
330 }
\ 04E0 ?0095:
\ 04E0 ?0093:
\ 04E0 ?0053:
331
332 }
333 return result;
334 }
\ 04E0 ?0096:
\ 04E0 DDF9 LD SP,IX
\ 04E2 DDE1 POP IX
\ 04E4 FDE1 POP IY
\ 04E6 D1 POP DE
\ 04E7 C1 POP BC
\ 04E8 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 04EB ?0117:
\ 04EB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04EE 010000 LD BC,0
\ 04F1 69 LD L,C
\ 04F2 60 LD H,B
\ 04F3 223700 LD (g_reader_vars+55),HL
\ 04F6 ED433900 LD (g_reader_vars+57),BC
\ 04FA 223B00 LD (g_reader_vars+59),HL
\ 04FD ED433D00 LD (g_reader_vars+61),BC
\ 0501 223F00 LD (g_reader_vars+63),HL
\ 0504 C9 RET
\ 0000 RSEG CSTR
\ 0000 ?0004:
\ 0000 524F4F54 DEFB 'ROOT'
\ 0004 00 DEFB 0
\ 0005 ?0006:
\ 0005 5C00 DEFB 92,0
\ 0000 RSEG CONST
\ 0000 menu_pos:
\ 0000 16 DEFB 22
\ 0001 28 DEFB '('
\ 0002 3A DEFB ':'
\ 0003 4C DEFB 'L'
\ 0004 5E DEFB '^'
\ 0005 70 DEFB 'p'
\ 0000 RSEG UDATA0
\ 0000 active:
\ 0002 DEFS 2
\ 0002 g_file_total:
\ 0004 DEFS 2
\ 0004 need_sel_file:
\ 0005 DEFS 1
\ 0005 fileName:
\ 0037 DEFS 50
\ 0037 END
Errors: none
Warnings: none
Code size: 1285
Constant size: 13
Static variable size: Data(55) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?