📄 main.lst
字号:
\ 0443 47 LD B,A
\ 0444 210000 LD HL,rec_source_tab
\ 0447 09 ADD HL,BC
\ 0448 7E LD A,(HL)
\ 0449 325500 LD (g_rec_from),A
449 result = show_stop(FALSE); //no start rec
\ 044C 58 LD E,B
\ 044D 180E JR ?0130
450 Close_RecRoute();
451 break;
\ 044F ?0094:
\ 044F 210980 LD HL,32777
\ 0452 ED42 SBC HL,BC
\ 0454 201C JR NZ,?0095
452
453 case MICREC_START: //非FM进程下,按热键REC,进入MIC录音.
454 g_rec_from = R_MIC;
\ 0456 3E10 LD A,16
\ 0458 325500 LD (g_rec_from),A
455 result = show_stop(TRUE); //start rec
\ 045B 1E01 LD E,1
\ 045D ?0130:
\ 045D 3E00 LD A,BYTE3 show_stop
\ 045F 210000 LD HL,LWRD show_stop
\ 0462 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0465 E5 PUSH HL
\ 0466 FDE1 POP IY
456 Close_RecRoute();
\ 0468 3E00 LD A,BYTE3 Close_RecRoute
\ 046A 210000 LD HL,LWRD Close_RecRoute
\ 046D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
457 break;
\ 0470 1868 JR ?0106
\ 0472 ?0095:
\ 0472 21F37F LD HL,32755
\ 0475 09 ADD HL,BC
\ 0476 3062 JR NC,?0106
\ 0478 21F17F LD HL,32753
\ 047B 09 ADD HL,BC
\ 047C 385C JR C,?0106
458
459 case FMREC_START: //在电台收听界面,按热键REC.进入FM录音.
460 case FMREC_NOSTART: //在电台收听界面,选择"电台录音"菜单,进入FM录音停止界面.
461 g_rec_from = R_FM;
\ 047E 3E40 LD A,64
\ 0480 325500 LD (g_rec_from),A
462 if (param==FMREC_START)
\ 0483 3E0D LD A,13
\ 0485 A9 XOR C
\ 0486 DDB6FF OR (IX-1)
\ 0489 2004 JR NZ,?0097
\ 048B ?0096:
463 result = show_stop(TRUE); //start rec
\ 048B 1E01 LD E,1
\ 048D 1802 JR ?0129
464 else
\ 048F ?0097:
465 result = show_stop(FALSE); //no start rec
\ 048F 1E00 LD E,0
\ 0491 ?0129:
\ 0491 3E00 LD A,BYTE3 show_stop
\ 0493 210000 LD HL,LWRD show_stop
\ 0496 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0499 E5 PUSH HL
\ 049A FDE1 POP IY
\ 049C ?0098:
466 if(result==RESULT_STANDBY) //return to fm progress
\ 049C 3E02 LD A,2
\ 049E AD XOR L
\ 049F B4 OR H
\ 04A0 2038 JR NZ,?0106
\ 04A2 ?0099:
467 {
468 result= RESULT_MAIN;
469 ReturnToFm=1;
\ 04A2 FD210A00 LD IY,10
\ 04A6 DD36F901 LD (IX-7),1
\ 04AA ?0100:
470 }
471 break;
\ 04AA 182E JR ?0106
\ 04AC ?0101:
472 default:
473 break;
\ 04AC ?0092:
474 }
475 }
476 else
\ 04AC ?0091:
477 {
478 g_free_space = (ulong)FS_GetSpace(FS_GET_SPACE_FREE);
\ 04AC 1E01 LD E,1
\ 04AE CD0000 CALL LWRD FS_GetSpace
\ 04B1 227C00 LD (g_free_space),HL
\ 04B4 ED437E00 LD (g_free_space+2),BC
479 if(g_free_space >= 2)
\ 04B8 59 LD E,C
\ 04B9 50 LD D,B
\ 04BA A7 AND A
\ 04BB 010200 LD BC,2
\ 04BE ED42 SBC HL,BC
\ 04C0 EB EX DE,HL
\ 04C1 0B DEC BC
\ 04C2 0B DEC BC
\ 04C3 ED42 SBC HL,BC
\ 04C5 3005 JR NC,?0077
\ 04C7 ?0103:
480 result = show_error(MREADERR); // 显示创建目录失败
481 else
\ 04C7 ?0104:
482 result = show_error(MWRIERR);
\ 04C7 11FF01 LD DE,511
\ 04CA 1803 JR ?0134
\ 04CC ?0105:
\ 04CC ?0102:
483 }
484 }
485 else
\ 04CC ?0077:
486 {
487 //report error
488 result = show_error(MREADERR);
\ 04CC 11FC01 LD DE,508
\ 04CF ?0134:
\ 04CF 3E00 LD A,BYTE3 show_error
\ 04D1 210900 LD HL,LWRD show_error
\ 04D4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04D7 E5 PUSH HL
\ 04D8 FDE1 POP IY
\ 04DA ?0106:
489 }
490 //退出ap时关闭资源文件
491 ResClose(res_fp);
\ 04DA ED5B0000 LD DE,(res_fp)
\ 04DE 3E00 LD A,BYTE3 ResClose
\ 04E0 210000 LD HL,LWRD ResClose
\ 04E3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
492 //write vars to vm
493 mc_result = VMWrite(&g_record_vars, VM_AP_FMRECORD);
\ 04E6 010038 LD BC,14336
\ 04E9 112000 LD DE,g_record_vars
\ 04EC CD0000 CALL LWRD VMWrite
494 ASSERT(mc_result);
495
496 //退出录音,关闭所有通道.
497 if(result == RESULT_MAIN)
\ 04EF FDE5 PUSH IY
\ 04F1 E1 POP HL
\ 04F2 3E0A LD A,10
\ 04F4 AD XOR L
\ 04F5 B4 OR H
\ 04F6 2026 JR NZ,?0108
\ 04F8 ?0107:
498 {
499 //aingainselect_t ain;
500 //ain = 2;
501 //SetAINGain(ain,0);
502 DisableAIN();
\ 04F8 CD0000 CALL LWRD DisableAIN
503 // SetPAVolume(0);
504
505 if(g_rec_from == R_FM)
\ 04FB 3A5500 LD A,(g_rec_from)
\ 04FE FE40 CP 64
\ 0500 2033 JR NZ,?0122
\ 0502 ?0109:
506 {
507 int standbymsg;
508 if(!ReturnToFm)
\ 0502 AF XOR A
\ 0503 DDB6F9 OR (IX-7)
\ 0506 202D JR NZ,?0122
\ 0508 ?0111:
\ 0508 ?0114:
509 {
510 while(1)
511 {
512 output8(0x4e,input8(0x4e)|0x8);
\ 0508 DB4E IN A,(78)
\ 050A CBDF SET 3,A
\ 050C D34E OUT (78),A
513 standbymsg = GetSysMsg();
\ 050E CD0000 CALL LWRD GetSysMsg
\ 0511 4F LD C,A
514 if(standbymsg == Msg_KeyShortUp)break;
\ 0512 3E30 LD A,48
\ 0514 A9 XOR C
\ 0515 281E JR Z,?0122
\ 0517 ?0116:
\ 0517 ?0117:
515 if(standbymsg == Msg_KeyLongUp)break;
\ 0517 3E31 LD A,49
\ 0519 A9 XOR C
\ 051A 20EC JR NZ,?0111
\ 051C ?0118:
\ 051C 1817 JR ?0122
\ 051E ?0119:
516 }
517 }
\ 051E ?0113:
\ 051E ?0112:
\ 051E ?0110:
\ 051E ?0108:
518 }
519 }
520 else if(g_rec_from == R_FM)
\ 051E 3A5500 LD A,(g_rec_from)
\ 0521 FE40 CP 64
\ 0523 2010 JR NZ,?0122
\ 0525 ?0121:
521 {
522 CloseFMPower();
\ 0525 DBDF IN A,(223)
\ 0527 CB8F RES 1,A
\ 0529 CBC7 SET 0,A
\ 052B D3DF OUT (223),A
523 Close_RecRoute();
\ 052D 3E00 LD A,BYTE3 Close_RecRoute
\ 052F 210000 LD HL,LWRD Close_RecRoute
\ 0532 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0535 ?0122:
\ 0535 ?0120:
524 }
525 return result;
\ 0535 FDE5 PUSH IY
\ 0537 E1 POP HL
526
527 }
\ 0538 ?0123:
\ 0538 DDF9 LD SP,IX
\ 053A DDE1 POP IX
\ 053C FDE1 POP IY
\ 053E C1 POP BC
\ 053F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
528
\ 0000 RSEG CSTR
\ 0000 ?0005:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0002 ?0011:
\ 0002 5C00 DEFB 92,0
\ 0004 ?0034:
\ 0004 524F4F54 DEFB 'ROOT'
\ 0008 00 DEFB 0
\ 0009 ?0046:
\ 0009 75693330 DEFB 'ui30.res'
\ 000D 2E726573
\ 0011 00 DEFB 0
\ 0000 RSEG CONST
\ 0000 rec_source_tab:
\ 0000 20 DEFB ' '
\ 0001 80 DEFB 128
\ 0002 10 DEFB 16
\ 0000 RSEG UDATA0
\ 0000 g_comval:
\ 0020 DEFS 32
\ 0020 g_record_vars:
\ 0055 DEFS 53
\ 0055 g_rec_from:
\ 0056 DEFS 1
\ 0056 g_file_num:
\ 0057 DEFS 1
\ 0057 time:
\ 005A DEFS 3
\ 005A g_now_time:
\ 0063 DEFS 9
\ 0063 g_rec_time:
\ 0066 DEFS 3
\ 0066 g_file_name_time:
\ 0071 DEFS 11
\ 0071 g_file_build_time:
\ 007C DEFS 11
\ 007C g_free_space:
\ 0080 DEFS 4
\ 0080 g_file_size:
\ 0084 DEFS 4
\ 0084
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -