📄 main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 27/Sep/107 17:32:10 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_fmrecord\main.c #
# List file = d:\case_i_d913f\ap\ap_fmrecord\list\main.lst #
# Object file = d:\case_i_d913f\ap\ap_fmrecord\obj\main.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_fmrecord\Obj\ -e #
# -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_fmrecord\List\ -q -t8 -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_FMRECORD\main.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME main(17)
\ 0000 RSEG CODE(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG CONST(0)
\ 0000 RSEG UDATA0(0)
\ 0000 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN BankSwitch
\ 0000 EXTERN ClearScreen
\ 0000 PUBLIC Close_RecRoute
\ 0000 EXTERN DRV_ActiveDrive
\ 0000 EXTERN DRV_ActiveUD
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN DisableAIN
\ 0000 EXTERN DisablePA
\ 0000 EXTERN FS_Backup
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_Dir
\ 0000 EXTERN FS_GetCurDir
\ 0000 EXTERN FS_GetName
\ 0000 EXTERN FS_GetSpace
\ 0000 EXTERN FS_MakeDir
\ 0000 EXTERN FS_Restore
\ 0000 EXTERN GetDefaultComval
\ 0000 EXTERN GetSysMsg
\ 0000 EXTERN ResClose
\ 0000 EXTERN ResOpen
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN channelnum
\ 0000 EXTERN dir_name
\ 0000 PUBLIC g_DiskStateFlag
\ 0000 PUBLIC g_comval
\ 0000 PUBLIC g_dir_ext
\ 0000 PUBLIC g_dir_record
\ 0000 PUBLIC g_dir_voice
\ 0000 PUBLIC g_file_build_time
\ 0000 PUBLIC g_file_name_time
\ 0000 PUBLIC g_file_num
\ 0000 PUBLIC g_file_size
\ 0000 PUBLIC g_free_space
\ 0000 PUBLIC g_now_time
\ 0000 PUBLIC g_rec_event
\ 0000 PUBLIC g_rec_from
\ 0000 PUBLIC g_rec_time
\ 0000 PUBLIC g_record_vars
\ 0000 PUBLIC main
\ 0000 PUBLIC make_dirname
\ 0000 PUBLIC menu
\ 0000 PUBLIC numsave
\ 0000 PUBLIC read_var
\ 0000 PUBLIC rec_source_tab
\ 0000 EXTERN res_fp
\ 0000 PUBLIC reset_record_dir
\ 0000 PUBLIC show_error
\ 0000 EXTERN show_stop
\ 0000 PUBLIC time
\ 0000 EXTERN ui_err_msg
\ 0000 EXTERN ui_show_a
\ 0000 EXTERN unitochar
\ 0000 EXTERN wavrSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 EXTERN ?MEMCMP_L11
\ 0000 RSEG CODE
\ 0000 Close_RecRoute:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice recorder main program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: main.c,v 1.2 2006/07/14 06:44:42 tangwh 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
20 //const
21 ///-const region_t region_msg={0, 24, SCR_WIDTH, 32};
22 const byte rec_source_tab[3]={R_LINEIN,R_SPDIF,R_MIC};
23
24 //global
25 comval_t g_comval;
26 record_vars_t g_record_vars;
27 int numsave=0; //保存进度条值
28 BYTE g_rec_from; //当前的录音源 //current record source
29 BYTE g_file_num; //录音文件总个数//record files quantity
30 time_t time;//char g_total_time[9]; //00:00:00
31 char g_now_time[9]; //00:00:00
32 time_t g_rec_time; //实时显示录音的时间//real time record time
33 char g_file_name_time[11]; //"WAV001.WAV"
34 char g_file_build_time[11]; //"2004/01/01"
35 ulong g_free_space; //剩余磁盘空间//remaining disk space
36 ulong g_file_size; //当前录音文件的page数// current record file's page count
37 extern channelnum_t channelnum;
38
39 WORD g_rec_event = 0;
40 //controls use these
41 function_menu_t menu;
42 //file_location_t location;
43 char g_dir_record[] = "RECORD ";
44 char g_dir_voice[] = "VOICE ";
45 char g_dir_ext[] = "* ";
46
47 BYTE g_DiskStateFlag = 0;//b7 = 1:flash 盘已格式化
48 //b6 = 1:flash 盘无文件
49 //b3 = 1:卡已格式化
50 //b2 = 1: 卡无文件
51 //b5,b4,b1,b0 : 保留
52 //default = 0x00
53 //========== func =================
54
55 #define REGDF_POWER_CTRL 0xdf
56 #define CloseFMPower() output8(REGDF_POWER_CTRL,((input8(REGDF_POWER_CTRL)&0xfd)|0x01))
57
58 /*
59 ********************************************************************************
60 * Description : 关闭所有MP3录音的硬件通道(环境)//close all MP3 record's hardware
61 *
62 * Arguments : 无 //none
63 *
64 * Returns : 无 //none
65 *
66 * Notes : 关闭内容:Disable: PA,Mix,AnalogIN,//close list: Disable PA,MIX,AnalogIN
67 *
68 ********************************************************************************
69 */
70 void Close_RecRoute(void)
71 {
72 DisableAIN();
\ 0000 CD0000 CALL LWRD DisableAIN
73 DisablePA();
\ 0003 CD0000 CALL LWRD DisablePA
74 }
\ 0006 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0009 show_error:
75 /*
76 ********************************************************************************
77 * Description : 带有显示的调试程序.//debug progress with display
78 *
79 * Arguments :
80 *
81 * Returns :
82 *
83 * Notes :
84 *
85 ********************************************************************************
86 */
87 /*
88 void MY_DUMP(char *string, int value)
89 {
90 char dump_buf[6];
91 dump_buf[0] = ',';
92 SetTextPos(0, 16);
93 PutS((string), -1);
94 itoa_4((value), &dump_buf[1]);
95 dump_buf[5] = '>';
96
97 PutS(dump_buf, 6);
98 UpdateScreen(NULL);
99 while( ap_get_message() != (AP_KEY_EQ| AP_KEY_UP)) {;}
100 }
101 */
102 /*
103 ********************************************************************************
104 * Description : 显示错误信息,等待2秒返回 //display error message,return after 2 seconds
105 *
106 * Arguments : msg_id, 错误信息的资源代号 //msg_id --error message resource ID
107 *
108 * Returns : 结果消息或0 //return result or zero
109 *
110 * Notes : 注意在等待2秒前清除pool, 确保2s //need to clear message pool before waiting,make sure delay 2s
111 *
112 ********************************************************************************
113 */
114 int show_error(WORD msg_id)
115 {
\ 0009 C5 PUSH BC
\ 000A DDE5 PUSH IX
116
117 ui_err_msg(msg_id,msg_id,g_comval.langid);
\ 000C ED4B0C00 LD BC,(g_comval+12)
\ 0010 0600 LD B,0
\ 0012 C5 PUSH BC
\ 0013 4B LD C,E
\ 0014 42 LD B,D
\ 0015 3E00 LD A,BYTE3 ui_err_msg
\ 0017 210000 LD HL,LWRD ui_err_msg
\ 001A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 001D F1 POP AF
\ 001E ?0003:
118 //clear message pool to make sure delay 2s
119 // Close_RecRoute();
120 // CloseFMPower();
121 while(ap_get_message() != 0) {;}
\ 001E CD0000 CALL LWRD ap_get_message
\ 0021 B7 OR A
\ 0022 20FA JR NZ,?0003
\ 0024 ?0004:
\ 0024 ?0002:
122 return ap_sleep(4);
\ 0024 110400 LD DE,4
\ 0027 3E00 LD A,BYTE3 ap_sleep
\ 0029 210000 LD HL,LWRD ap_sleep
\ 002C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 002F 2600 LD H,0
123 }
\ 0031 DDE1 POP IX
\ 0033 C1 POP BC
\ 0034 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0037 reset_record_dir:
124
125
126 //=============func end =======================
127
128 /*
129 ********************************************************************************
130 * Description : 设置录音缺省目录\Record\Voice //set default path:\Record\Voice
131 *
132 * Arguments :
133 *
134 * Returns :
135 *
136 * Notes : 把\Record\Voice做为当前目录//set "\Record\Voice" as current directory
137 *
138 ********************************************************************************
139 */
140 BOOL reset_record_dir(void)
141 {
\ 0037 C5 PUSH BC
\ 0038 D5 PUSH DE
\ 0039 FDE5 PUSH IY
\ 003B DDE5 PUSH IX
\ 003D DD210000 LD IX,0
\ 0041 DD39 ADD IX,SP
\ 0043 21ECFF LD HL,65516
\ 0046 39 ADD HL,SP
\ 0047 F9 LD SP,HL
142 int result, i;
143 long tmp;
144 BOOL status;
145 char file[12];
146
147 strcpy(g_record_vars.location.path, g_dir_voice);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -