main.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,391 行 · 第 1/5 页
LST
1,391 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:10 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_fmrecord\main.c #
# List file = d:\case_i_d90f\ap\ap_fmrecord\list\main.lst #
# Object file = d:\case_i_d90f\ap\ap_fmrecord\obj\main.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\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_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 PUBLIC region_msg
\ 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[7]; //"WAV01 2004/01/01"
34 char g_file_build_time[12]; //"WAV01 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 //controls use these
40 function_menu_t menu;
41 //file_location_t location;
42 char g_dir_record[] = "RECORD ";
43 char g_dir_voice[] = "VOICE ";
44 char g_dir_ext[] = "* ";
45
46 BYTE g_DiskStateFlag = 0;//b7 = 1:flash 盘已格式化
47 //b6 = 1:flash 盘无文件
48 //b3 = 1:卡已格式化
49 //b2 = 1: 卡无文件
50 //b5,b4,b1,b0 : 保留
51 //default = 0x00
52 //========== func =================
53
54 #define REGDF_POWER_CTRL 0xdf
55 #define CloseFMPower() output8(REGDF_POWER_CTRL,((input8(REGDF_POWER_CTRL)&0xfd)|0x01))
56
57 /*
58 ********************************************************************************
59 * Description : 关闭所有MP3录音的硬件通道(环境)//close all MP3 record's hardware
60 *
61 * Arguments : 无 //none
62 *
63 * Returns : 无 //none
64 *
65 * Notes : 关闭内容:Disable: PA,Mix,AnalogIN,//close list: Disable PA,MIX,AnalogIN
66 *
67 ********************************************************************************
68 */
69 void Close_RecRoute(void)
70 {
71 DisableAIN();
\ 0000 CD0000 CALL LWRD DisableAIN
72 DisablePA();
\ 0003 CD0000 CALL LWRD DisablePA
73 }
\ 0006 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0009 show_error:
74 /*
75 ********************************************************************************
76 * Description : 带有显示的调试程序.//debug progress with display
77 *
78 * Arguments :
79 *
80 * Returns :
81 *
82 * Notes :
83 *
84 ********************************************************************************
85 */
86 /*
87 void MY_DUMP(char *string, int value)
88 {
89 char dump_buf[6];
90 dump_buf[0] = ',';
91 SetTextPos(0, 16);
92 PutS((string), -1);
93 itoa_4((value), &dump_buf[1]);
94 dump_buf[5] = '>';
95
96 PutS(dump_buf, 6);
97 UpdateScreen(NULL);
98 while( ap_get_message() != (AP_KEY_EQ| AP_KEY_UP)) {;}
99 }
100 */
101 /*
102 ********************************************************************************
103 * Description : 显示错误信息,等待2秒返回 //display error message,return after 2 seconds
104 *
105 * Arguments : msg_id, 错误信息的资源代号 //msg_id --error message resource ID
106 *
107 * Returns : 结果消息或0 //return result or zero
108 *
109 * Notes : 注意在等待2秒前清除pool, 确保2s //need to clear message pool before waiting,make sure delay 2s
110 *
111 ********************************************************************************
112 */
113 int show_error(WORD msg_id)
114 {
\ 0009 C5 PUSH BC
\ 000A DDE5 PUSH IX
115
116 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
117 //clear message pool to make sure delay 2s
118 Close_RecRoute();
\ 001E 3E00 LD A,BYTE3 Close_RecRoute
\ 0020 210000 LD HL,LWRD Close_RecRoute
\ 0023 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
119 CloseFMPower();
\ 0026 DBDF IN A,(223)
\ 0028 CB8F RES 1,A
\ 002A CBC7 SET 0,A
\ 002C D3DF OUT (223),A
\ 002E ?0003:
120 while(ap_get_message() != 0) {;}
\ 002E CD0000 CALL LWRD ap_get_message
\ 0031 B7 OR A
\ 0032 20FA JR NZ,?0003
\ 0034 ?0004:
\ 0034 ?0002:
121 return ap_sleep(4);
\ 0034 110400 LD DE,4
\ 0037 3E00 LD A,BYTE3 ap_sleep
\ 0039 210000 LD HL,LWRD ap_sleep
\ 003C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 003F 2600 LD H,0
122 }
\ 0041 DDE1 POP IX
\ 0043 C1 POP BC
\ 0044 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0047 reset_record_dir:
123
124
125 //=============func end =======================
126
127 /*
128 ********************************************************************************
129 * Description : 设置录音缺省目录\Record\Voice //set default path:\Record\Voice
130 *
131 * Arguments :
132 *
133 * Returns :
134 *
135 * Notes : 把\Record\Voice做为当前目录//set "\Record\Voice" as current directory
136 *
137 ********************************************************************************
138 */
139 BOOL reset_record_dir(void)
140 {
\ 0047 C5 PUSH BC
\ 0048 D5 PUSH DE
\ 0049 FDE5 PUSH IY
\ 004B DDE5 PUSH IX
\ 004D DD210000 LD IX,0
\ 0051 DD39 ADD IX,SP
\ 0053 21ECFF LD HL,65516
\ 0056 39 ADD HL,SP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?