show_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,184 行 · 第 1/4 页
LST
1,184 行
314 g_record_vars.rec_bitrate != rec_bitrate)
\ 03A2 3E67 LD A,103
\ 03A4 AD XOR L
\ 03A5 B4 OR H
\ 03A6 2808 JR Z,?0058
\ 03A8 3A0300 LD A,(g_record_vars+3)
\ 03AB DDBEFC CP (IX-4)
\ 03AE 2816 JR Z,?0057
\ 03B0 ?0058:
\ 03B0 ?0059:
\ 03B0 ?0056:
315 {
316 g_record_vars.Rec_Fsrate=rec_FsrateCodec[g_record_vars.rec_bitrate];
\ 03B0 ED4B0300 LD BC,(g_record_vars+3)
\ 03B4 0600 LD B,0
\ 03B6 210400 LD HL,rec_FsrateCodec
\ 03B9 09 ADD HL,BC
\ 03BA 46 LD B,(HL)
\ 03BB 78 LD A,B
\ 03BC 320200 LD (g_record_vars+2),A
317 //目录改变后,重新分析文件个数
318 need_parse = TRUE;
\ 03BF DD36F801 LD (IX-8),1
\ 03C3 C37904 JP LWRD ?0097
\ 03C6 ?0057:
319 }
320 else if(result != 0) return result;
\ 03C6 7D LD A,L
\ 03C7 B4 OR H
\ 03C8 CA7904 JP Z,?0097
\ 03CB ?0061:
\ 03CB C38A04 JP LWRD ?0086
\ 03CE ?0062:
\ 03CE ?0060:
321
322 need_draw = TRUE;
323 }
324 else
\ 03CE ?0052:
325 g_menu_active = TRUE;
\ 03CE 3E01 LD A,1
\ 03D0 320B00 LD (g_menu_active),A
\ 03D3 ?0063:
326 break;
\ 03D3 C3FD01 JP LWRD ?0022
\ 03D6 ?0064:
327
328
329 case AP_KEY_AB:
330 //skip this hotkey
331 break;
\ 03D6 ?0065:
332
333 case AP_KEY_PLAY | AP_KEY_UP:
334 case AP_KEY_AB |AP_KEY_UP:
335 if(!waiting_keyup)
\ 03D6 AF XOR A
\ 03D7 DDB6FB OR (IX-5)
\ 03DA C2F901 JP NZ,?0093
\ 03DD ?0066:
336 {
337 result = do_rec();
\ 03DD 3E00 LD A,BYTE3 do_rec
\ 03DF 210000 LD HL,LWRD do_rec
\ 03E2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03E5 E5 PUSH HL
\ 03E6 FDE1 POP IY
338
339 //打开自动关机检测
340 ap_message_init(NULL);
\ 03E8 110000 LD DE,0
\ 03EB 3E00 LD A,BYTE3 ap_message_init
\ 03ED 210000 LD HL,LWRD ap_message_init
\ 03F0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
341
342 //check if user hold rec to stop it
343 if(result == RESULT_USER_STOP)
\ 03F3 FDE5 PUSH IY
\ 03F5 E1 POP HL
\ 03F6 3E65 LD A,101
\ 03F8 AD XOR L
\ 03F9 B4 OR H
\ 03FA 2008 JR NZ,?0069
\ 03FC ?0068:
344 {
345 waiting_keyup = TRUE;
346
347 result = 0;
\ 03FC DD36FB01 LD (IX-5),1
\ 0400 FD210000 LD IY,0
\ 0404 ?0069:
348 }
349
350 if(result==AP_MSG_SD_OUT)
\ 0404 FDE5 PUSH IY
\ 0406 E1 POP HL
\ 0407 3E37 LD A,55
\ 0409 AD XOR L
\ 040A B4 OR H
\ 040B 2009 JR NZ,?0071
\ 040D ?0070:
351 {
352
353 show_error(CARDPULL);//显示卡拔出
\ 040D CD9404 CALL LWRD ?0101
354 output8(0x27,0x60);
\ 0410 3E60 LD A,96
\ 0412 D327 OUT (39),A
355 g_record_vars.location.disk = 'C';
\ 0414 182A JR ?0099
356 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
357 // fselGetLocation(&g_record_vars.location);
358 reset_record_dir();
359 make_dirname();
360 need_parse = TRUE;
361 break;
\ 0416 ?0071:
362 }
363
364 //check for hotkey
365 if(result != 0) return result;
\ 0416 7D LD A,L
\ 0417 B4 OR H
\ 0418 284E JR Z,?0096
\ 041A ?0072:
\ 041A 186E JR ?0086
\ 041C ?0073:
366
367 //gen a new file name for nex time recording
368 need_parse = TRUE;
369 }
370 else
\ 041C ?0067:
371 {
372 //取走用户的按键抬起
373
374 waiting_keyup = FALSE;
\ 041C ?0074:
375 }
376
377 break;
\ 041C ?0075:
378
379
380 case AP_MSG_RTC:
381 ui_show_batt(GetBattery(), g_comval.BatteryType,0);
382
383 break;
\ 041C ?0076:
384
385
386 case AP_MSG_CHARGING:
387 ui_show_batt(GetBattery(), g_comval.BatteryType,0);
\ 041C 0E00 LD C,0
\ 041E C5 PUSH BC
\ 041F ED4B0F00 LD BC,(g_comval+15)
\ 0423 CD0000 CALL LWRD GetBattery
\ 0426 5F LD E,A
\ 0427 1600 LD D,0
\ 0429 3E00 LD A,BYTE3 ui_show_batt
\ 042B 210000 LD HL,LWRD ui_show_batt
\ 042E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0431 E1 POP HL
388
389 break;
\ 0432 C3FD01 JP LWRD ?0022
\ 0435 ?0077:
390 case AP_MSG_SD_OUT:
391 if(g_record_vars.location.disk=='H')
\ 0435 3A0A00 LD A,(g_record_vars+10)
\ 0438 FE48 CP 72
\ 043A C2FD01 JP NZ,?0022
\ 043D ?0078:
392 {
393 show_error(CARDPULL);//显示卡拔出
\ 043D CD9404 CALL LWRD ?0101
394 g_record_vars.location.disk = 'C';
\ 0440 ?0099:
\ 0440 3E43 LD A,67
\ 0442 320A00 LD (g_record_vars+10),A
395 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
\ 0445 4F LD C,A
\ 0446 C5 PUSH BC
\ 0447 0E00 LD C,0
\ 0449 C5 PUSH BC
\ 044A 0E07 LD C,7
\ 044C 1E02 LD E,2
\ 044E 3E00 LD A,BYTE3 fselInit
\ 0450 210000 LD HL,LWRD fselInit
\ 0453 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0456 F1 POP AF
\ 0457 F1 POP AF
396 // fselGetLocation(&g_record_vars.location);
397 reset_record_dir();
\ 0458 3E00 LD A,BYTE3 reset_record_dir
\ 045A 210000 LD HL,LWRD reset_record_dir
\ 045D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
398 make_dirname();
\ 0460 3E00 LD A,BYTE3 make_dirname
\ 0462 210000 LD HL,LWRD make_dirname
\ 0465 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
399 need_parse = TRUE;
\ 0468 ?0096:
\ 0468 DD36F801 LD (IX-8),1
\ 046C ?0079:
400 }
401 break;
\ 046C C3FD01 JP LWRD ?0022
\ 046F ?0080:
402
403 default:
404 key = ap_handle_hotkey( key);
\ 046F CD0000 CALL LWRD ap_handle_hotkey
\ 0472 DD77F9 LD (IX-7),A
405 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 0475 FE32 CP 50
\ 0477 2007 JR NZ,?0082
\ 0479 ?0081:
\ 0479 ?0097:
\ 0479 DD36FA01 LD (IX-6),1
\ 047D C3FD01 JP LWRD ?0022
\ 0480 ?0082:
406 else if(key != 0) return key;
\ 0480 AF XOR A
\ 0481 DDB6F9 OR (IX-7)
\ 0484 CAFD01 JP Z,?0022
\ 0487 ?0084:
\ 0487 6F LD L,A
\ 0488 2600 LD H,0
407 }//switch(key);
\ 048A ?0086:
\ 048A DDF9 LD SP,IX
\ 048C DDE1 POP IX
\ 048E FDE1 POP IY
\ 0490 C1 POP BC
\ 0491 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0494 ?0101:
\ 0494 119101 LD DE,401
\ 0497 ?0100:
\ 0497 3E00 LD A,BYTE3 show_error
\ 0499 210000 LD HL,LWRD show_error
\ 049C C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 049F ?0085:
\ 049F ?0083:
\ 049F ?0048:
408
409 }//while(1)
410 }
411
\ 0000 RSEG CSTR
\ 0000 ?0015:
\ 0000 524543 DEFB 'REC'
\ 0003 00 DEFB 0
\ 0004 ?0016:
\ 0004 20205741 DEFB ' WAV'
\ 0008 56
\ 0009 00 DEFB 0
\ 000A ?0019:
\ 000A 52454330 DEFB 'REC00'
\ 000E 30
\ 000F 00 DEFB 0
\ 0000 RSEG CONST
\ 0000 rec_Fsrate:
\ 0000 08 DEFB 8
\ 0001 08 DEFB 8
\ 0002 30 DEFB '0'
\ 0003 30 DEFB '0'
\ 0004 rec_FsrateCodec:
\ 0004 00 DEFB 0
\ 0005 00 DEFB 0
\ 0006 08 DEFB 8
\ 0007 08 DEFB 8
\ 0000 RSEG UDATA0
\ 0000 currentBitrate:
\ 0004 DEFS 4
\ 0004 Rec_format:
\ 000A DEFS 6
\ 000A channelnum:
\ 000B DEFS 1
\ 000B g_menu_active:
\ 000C DEFS 1
\ 0000 RSEG IDATA0
\ 0000 Rec_resource:
\ 0002 DEFS 2
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0001 00 DEFB 0
\ 0002 END
Errors: none
Warnings: none
Code size: 1183
Constant size: 26
Static variable size: Data(14) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?