📄 show_stop.lst
字号:
\ 03AA 2808 JR Z,?0058
\ 03AC 3A0300 LD A,(g_record_vars+3)
\ 03AF DDBEFC CP (IX-4)
\ 03B2 2816 JR Z,?0057
\ 03B4 ?0058:
\ 03B4 ?0059:
\ 03B4 ?0056:
322 {
323 g_record_vars.Rec_Fsrate=rec_FsrateCodec[g_record_vars.rec_bitrate];
\ 03B4 ED4B0300 LD BC,(g_record_vars+3)
\ 03B8 0600 LD B,0
\ 03BA 210400 LD HL,rec_FsrateCodec
\ 03BD 09 ADD HL,BC
\ 03BE 46 LD B,(HL)
\ 03BF 78 LD A,B
\ 03C0 320200 LD (g_record_vars+2),A
324 //目录改变后,重新分析文件个数
325 need_parse = TRUE;
\ 03C3 DD36F901 LD (IX-7),1
\ 03C7 C38D04 JP LWRD ?0093
\ 03CA ?0057:
326 }
327 else if(result != 0) return result;
\ 03CA 7D LD A,L
\ 03CB B4 OR H
\ 03CC CA8D04 JP Z,?0093
\ 03CF ?0061:
\ 03CF C39E04 JP LWRD ?0083
\ 03D2 ?0062:
\ 03D2 ?0060:
328
329 need_draw = TRUE;
330 }
331 else
\ 03D2 ?0052:
332 g_menu_active = TRUE;
\ 03D2 3E01 LD A,1
\ 03D4 320B00 LD (g_menu_active),A
\ 03D7 ?0063:
333 break;
\ 03D7 C3FD01 JP LWRD ?0022
\ 03DA ?0064:
334
335
336 case AP_KEY_AB:
337 //skip this hotkey
338 break;
\ 03DA ?0065:
339
340 case AP_KEY_PLAY | AP_KEY_UP:
341 case AP_KEY_AB |AP_KEY_UP:
342 if(!waiting_keyup)
\ 03DA AF XOR A
\ 03DB DDB6FB OR (IX-5)
\ 03DE C2F901 JP NZ,?0090
\ 03E1 ?0066:
343 {
344 result = do_rec();
\ 03E1 3E00 LD A,BYTE3 do_rec
\ 03E3 210000 LD HL,LWRD do_rec
\ 03E6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03E9 E5 PUSH HL
\ 03EA FDE1 POP IY
345
346 status = stop;
\ 03EC AF XOR A
\ 03ED 320000 LD (status),A
347 main_ResShowPic(PAUSEICN,5,3);
\ 03F0 0E03 LD C,3
\ 03F2 C5 PUSH BC
\ 03F3 0E05 LD C,5
\ 03F5 11DE00 LD DE,222
\ 03F8 3E00 LD A,BYTE3 main_ResShowPic
\ 03FA 210000 LD HL,LWRD main_ResShowPic
\ 03FD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0400 F1 POP AF
348
349 //打开自动关机检测
350 ap_message_init(NULL);
\ 0401 110000 LD DE,0
\ 0404 3E00 LD A,BYTE3 ap_message_init
\ 0406 210000 LD HL,LWRD ap_message_init
\ 0409 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
351
352 //check if user hold rec to stop it
353 if(result == RESULT_USER_STOP)
\ 040C FDE5 PUSH IY
\ 040E E1 POP HL
\ 040F 3E65 LD A,101
\ 0411 AD XOR L
\ 0412 B4 OR H
\ 0413 2008 JR NZ,?0069
\ 0415 ?0068:
354 {
355 waiting_keyup = TRUE;
356
357 result = 0;
\ 0415 DD36FB01 LD (IX-5),1
\ 0419 FD210000 LD IY,0
\ 041D ?0069:
358 }
359
360 if(result==AP_MSG_SD_OUT)
\ 041D FDE5 PUSH IY
\ 041F E1 POP HL
\ 0420 3E37 LD A,55
\ 0422 AD XOR L
\ 0423 B4 OR H
\ 0424 2039 JR NZ,?0071
\ 0426 ?0070:
361 {
362
363 show_error(CARDPULL);//显示卡拔出
\ 0426 118A01 LD DE,394
\ 0429 3E00 LD A,BYTE3 show_error
\ 042B 210000 LD HL,LWRD show_error
\ 042E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
364 output8(0x27,0x60);
\ 0431 3E60 LD A,96
\ 0433 D327 OUT (39),A
365 g_record_vars.location.disk = 'C';
\ 0435 3E43 LD A,67
\ 0437 320A00 LD (g_record_vars+10),A
366 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
\ 043A 4F LD C,A
\ 043B C5 PUSH BC
\ 043C 0E00 LD C,0
\ 043E C5 PUSH BC
\ 043F 0E07 LD C,7
\ 0441 1E02 LD E,2
\ 0443 3E00 LD A,BYTE3 fselInit
\ 0445 210000 LD HL,LWRD fselInit
\ 0448 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 044B F1 POP AF
\ 044C F1 POP AF
367 // fselGetLocation(&g_record_vars.location);
368 reset_record_dir();
\ 044D 3E00 LD A,BYTE3 reset_record_dir
\ 044F 210000 LD HL,LWRD reset_record_dir
\ 0452 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
369 make_dirname();
\ 0455 3E00 LD A,BYTE3 make_dirname
\ 0457 210000 LD HL,LWRD make_dirname
\ 045A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
370 need_parse = TRUE;
\ 045D 1804 JR ?0073
371 break;
\ 045F ?0071:
372 }
373
374 //check for hotkey
375 if(result != 0) return result;
\ 045F 7D LD A,L
\ 0460 B4 OR H
\ 0461 203B JR NZ,?0083
\ 0463 ?0072:
\ 0463 ?0073:
376
377 //gen a new file name for nex time recording
378 need_parse = TRUE;
\ 0463 DD36F901 LD (IX-7),1
379 }
380 else
\ 0467 C3FD01 JP LWRD ?0022
\ 046A ?0067:
381 {
382 //取走用户的按键抬起
383
384 waiting_keyup = FALSE;
\ 046A ?0074:
385 }
386
387 break;
\ 046A ?0075:
388
389
390 case AP_MSG_RTC:
391 ui_show_batt(GetBattery(), g_comval.BatteryType,0);
392
393 break;
\ 046A ?0076:
394
395
396 case AP_MSG_CHARGING:
397 ui_show_batt(GetBattery(), g_comval.BatteryType,0);
\ 046A 0E00 LD C,0
\ 046C C5 PUSH BC
\ 046D ED4B0F00 LD BC,(g_comval+15)
\ 0471 CD0000 CALL LWRD GetBattery
\ 0474 5F LD E,A
\ 0475 1600 LD D,0
\ 0477 3E00 LD A,BYTE3 ui_show_batt
\ 0479 210000 LD HL,LWRD ui_show_batt
\ 047C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 047F E1 POP HL
398
399 break;
\ 0480 C3FD01 JP LWRD ?0022
\ 0483 ?0077:
400 /*
401 case AP_MSG_SD_OUT:
402 if(g_record_vars.location.disk=='H')
403 {
404 show_error(CARDPULL);//显示卡拔出
405 g_record_vars.location.disk = 'C';
406 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
407 // fselGetLocation(&g_record_vars.location);
408 reset_record_dir();
409 make_dirname();
410 need_parse = TRUE;
411 }
412 break;
413 */
414 default:
415 key = ap_handle_hotkey( key);
\ 0483 CD0000 CALL LWRD ap_handle_hotkey
\ 0486 DD77F8 LD (IX-8),A
416 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 0489 FE32 CP 50
\ 048B 2007 JR NZ,?0079
\ 048D ?0078:
\ 048D ?0093:
\ 048D DD36FA01 LD (IX-6),1
\ 0491 C3FD01 JP LWRD ?0022
\ 0494 ?0079:
417 else if(key != 0) return key;
\ 0494 AF XOR A
\ 0495 DDB6F8 OR (IX-8)
\ 0498 CAFD01 JP Z,?0022
\ 049B ?0081:
\ 049B 6F LD L,A
\ 049C 2600 LD H,0
418 break;
\ 049E ?0083:
\ 049E DDF9 LD SP,IX
\ 04A0 DDE1 POP IX
\ 04A2 FDE1 POP IY
\ 04A4 C1 POP BC
\ 04A5 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 04A8 ?0082:
\ 04A8 ?0080:
\ 04A8 ?0048:
419 }//switch(key);
420
421 }//while(1)
422 }
423
\ 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
\ 0008 voice_ext:
\ 0008 574156 DEFB 'WAV'
\ 000B 00 DEFB 0
\ 000C 414354 DEFB 'ACT'
\ 000F 00 DEFB 0
\ 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: 1192
Constant size: 34
Static variable size: Data(14) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -