📄 show_rec.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:12 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_fmrecord\show_rec.c #
# List file = d:\case_i_d90f\ap\ap_fmrecord\list\show_rec.lst #
# Object file = d:\case_i_d90f\ap\ap_fmrecord\obj\show_rec.r01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_fmrecord\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_fmrecord\List\ -q -t8 -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\AP_FMRECORD\show_rec.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME show_rec(17)
\ 0000 RSEG CODE(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN GetBattery
\ 0000 EXTERN PutS
\ 0000 EXTERN Rec_format
\ 0000 EXTERN Rec_resource
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC Show_Bitrate
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_set_event
\ 0000 EXTERN channelnum
\ 0000 EXTERN currentBitrate
\ 0000 EXTERN dir_name
\ 0000 PUBLIC do_rec
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_file_build_time
\ 0000 EXTERN g_file_name_time
\ 0000 EXTERN g_file_num
\ 0000 EXTERN g_file_size
\ 0000 EXTERN g_free_space
\ 0000 EXTERN g_now_time
\ 0000 EXTERN g_rec_from
\ 0000 EXTERN g_rec_time
\ 0000 EXTERN g_record_vars
\ 0000 PUBLIC get_rec_source
\ 0000 PUBLIC is_lowbatt
\ 0000 EXTERN itoa_1
\ 0000 EXTERN itoa_2
\ 0000 EXTERN itoa_3
\ 0000 EXTERN main_ResShowPic
\ 0000 PUBLIC recordSendCommand
\ 0000 EXTERN show_error
\ 0000 EXTERN show_pause
\ 0000 PUBLIC show_rec
\ 0000 EXTERN time
\ 0000 PUBLIC time_draw
\ 0000 EXTERN ui_auto_update
\ 0000 PUBLIC ui_draw
\ 0000 EXTERN ui_run_realtime
\ 0000 EXTERN ui_show_a
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ui_show_d
\ 0000 EXTERN ui_show_d2
\ 0000 EXTERN ui_show_f
\ 0000 EXTERN ui_show_g
\ 0000 PUBLIC ui_show_h
\ 0000 EXTERN wavrProceed
\ 0000 EXTERN wavrSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?L_INC_L03
\ 0000 EXTERN ?L_DEC_L03
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE
\ 0000 get_rec_source:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice recorder main program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: show_rec.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
10 *******************************************************************************
11 */
12 #include "actos.h"
13 #include "basal.h"
14 #include "enhanced.h"
15 #include "ap_common.h"
16 #include "ap_record.h"
17 #include "codec.h"
18
19 #define CODEC_USING_POOLING_MODE
20
21 extern channelnum_t channelnum;
22 extern char currentBitrate[4];
23 extern resource_t Rec_resource;
24 extern audio_format_t Rec_format;
25
26
27 /*
28 ********************************************************************************
29 * Description : 获取当前的录音源,并记录在g_resource.input中.
30 *
31 * Arguments :
32 *
33 * Returns :
34 *
35 * Notes :在调用MC_SETRESOURCE之前,调用此函数!
36 *
37 ********************************************************************************
38 */
39 void get_rec_source(void)
40 {
41 Rec_resource.input.linein = 0;
\ 0000 210000 LD HL,Rec_resource
\ 0003 CB96 RES 2,(HL)
42 Rec_resource.input.dac = 0;
\ 0005 CB86 RES 0,(HL)
43 Rec_resource.input.fm = 0;
\ 0007 CB8E RES 1,(HL)
44 Rec_resource.input.mic = 0;
\ 0009 CB9E RES 3,(HL)
45
46 switch(g_rec_from)
\ 000B 3A0000 LD A,(g_rec_from)
\ 000E FE20 CP 32
\ 0010 2818 JR Z,?0007
\ 0012 ?0003:
47 {
48
49 case R_LINEIN:
50 Rec_resource.input.linein = 1;
51 break;
\ 0012 ?0004:
\ 0012 FE80 CP 128
\ 0014 2004 JR NZ,?0005
52
53 case R_SPDIF:
54 Rec_resource.input.dac = 1;
\ 0016 CBC6 SET 0,(HL)
55 break;
\ 0018 1812 JR ?0002
\ 001A ?0005:
\ 001A FE40 CP 64
\ 001C 2004 JR NZ,?0006
56
57 case R_FM:
58 Rec_resource.input.fm = 1;
\ 001E CBCE SET 1,(HL)
59 break;
\ 0020 180A JR ?0002
\ 0022 ?0006:
\ 0022 FE10 CP 16
\ 0024 2004 JR NZ,?0007
60
61 case R_MIC:
62 Rec_resource.input.mic = 1;
\ 0026 CBDE SET 3,(HL)
63 break;
\ 0028 1802 JR ?0002
\ 002A ?0007:
64
65 default:
66 Rec_resource.input.linein = 1;
\ 002A CBD6 SET 2,(HL)
67 break;
\ 002C ?0002:
68 }
69 }
\ 002C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 002F do_rec:
70
71 /*
72 ********************************************************************************
73 * Description : 进入录音
74 *
75 * Arguments :
76 *
77 * Returns : 结果消息或0
78 *
79 * Notes :
80 *
81 ********************************************************************************
82 */
83 int do_rec(void)
84 {
\ 002F C5 PUSH BC
\ 0030 D5 PUSH DE
\ 0031 DDE5 PUSH IX
85 int result;
86 g_file_size = 0L;
\ 0033 010000 LD BC,0
\ 0036 ED430000 LD (g_file_size),BC
\ 003A ED430200 LD (g_file_size+2),BC
87
88 //检查电压
89 if(is_lowbatt(GetBattery()))
\ 003E CD0000 CALL LWRD GetBattery
\ 0041 5F LD E,A
\ 0042 3E00 LD A,BYTE3 is_lowbatt
\ 0044 216203 LD HL,LWRD is_lowbatt
\ 0047 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 004A 2C INC L
\ 004B 2D DEC L
\ 004C 280E JR Z,?0009
\ 004E ?0008:
90 {
91 return show_error(MPWROUT);
\ 004E 118C01 LD DE,396
\ 0051 3E00 LD A,BYTE3 show_error
\ 0053 210000 LD HL,LWRD show_error
\ 0056 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
92 }
\ 0059 C3EA00 JP LWRD ?0012
\ 005C ?0009:
93
94 //防止在录音过程中切换bank
95 ui_run_realtime = TRUE;
\ 005C 3E01 LD A,1
\ 005E 320000 LD (ui_run_realtime),A
96
97 //open codec
98 result = recordSendCommand(MC_OPEN, 0);
\ 0061 5F LD E,A
\ 0062 CD0601 CALL LWRD ?0151
\ 0065 2600 LD H,0
\ 0067 4C LD C,H
99 recordSendCommand(MC_RECODEMODE,STEREO);
\ 0068 44 LD B,H
\ 0069 1E57 LD E,87
\ 006B CD0601 CALL LWRD ?0151
100 //Rec_resource.input.fm=1;
101 get_rec_source();
\ 006E 3E00 LD A,BYTE3 get_rec_source
\ 0070 210000 LD HL,LWRD get_rec_source
\ 0073 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
102 // output8(0x4e,input8(0x4e)|0x8); //for test
103 recordSendCommand(MC_SETSOURCE,(int)&Rec_resource);
\ 0076 010000 LD BC,Rec_resource
\ 0079 1E52 LD E,82
\ 007B CD0601 CALL LWRD ?0151
104 Rec_format.sample_rate=g_record_vars.Rec_Fsrate;
\ 007E 3A0200 LD A,(g_record_vars+2)
\ 0081 320100 LD (Rec_format+1),A
105 Rec_format.channel = channelnum;
\ 0084 3A0000 LD A,(channelnum)
\ 0087 320200 LD (Rec_format+2),A
106 Rec_format.bit_rate[0]=currentBitrate[0];
\ 008A 3A0000 LD A,(currentBitrate)
\ 008D 320300 LD (Rec_format+3),A
107 Rec_format.bit_rate[1]=currentBitrate[1];
\ 0090 3A0100 LD A,(currentBitrate+1)
\ 0093 320400 LD (Rec_format+4),A
108 Rec_format.bit_rate[2]=currentBitrate[2];
\ 0096 3A0200 LD A,(currentBitrate+2)
\ 0099 320500 LD (Rec_format+5),A
109 recordSendCommand(MC_SETAUDIOFMT,(int)&Rec_format);
\ 009C 010000 LD BC,Rec_format
\ 009F 1E51 LD E,81
\ 00A1 CD0601 CALL LWRD ?0151
110
111 //output8(0x4e,input8(0x4e)|0x8);
112
113 result = recordSendCommand(MC_LOAD, (int)g_record_vars.location.filename);
\ 00A4 012400 LD BC,g_record_vars+36
\ 00A7 1E03 LD E,3
\ 00A9 CD0601 CALL LWRD ?0151
114 //ASSERT(result);
115 if(!result)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -