📄 main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:39:07 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_voice\main.c #
# List file = d:\case_i_d913f\ap\ap_voice\list\main.lst #
# Object file = d:\case_i_d913f\ap\ap_voice\obj\main.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_voice\Obj\ -e -K #
# -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_voice\List\ -q -t8 #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\AP\AP_VOICE\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 EXTERN Cur_Status
\ 0000 EXTERN DRV_ActiveDrive
\ 0000 EXTERN DRV_ActiveUD
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN DisableDAC
\ 0000 EXTERN DisablePA
\ 0000 EXTERN EnableDAC
\ 0000 EXTERN FS_Backup
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FOpen
\ 0000 EXTERN FS_GetCrtTime
\ 0000 EXTERN FS_GetFileLen
\ 0000 EXTERN FS_GetName
\ 0000 EXTERN FS_Restore
\ 0000 EXTERN GetDCStatus
\ 0000 EXTERN GetDefaultComval
\ 0000 EXTERN PutS
\ 0000 EXTERN ResClose
\ 0000 EXTERN ResOpen
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN SetAsciiFont
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextPos
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_message_init
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN dir_name
\ 0000 PUBLIC filelong
\ 0000 EXTERN fselGetErrID
\ 0000 EXTERN fselGetLocation
\ 0000 EXTERN fselGetNextFile
\ 0000 EXTERN fselGetPrevFile
\ 0000 EXTERN fselSetLocation
\ 0000 EXTERN fselSetMode
\ 0000 PUBLIC g_DiskStateFlag
\ 0000 PUBLIC g_bit_rate_pic
\ 0000 PUBLIC g_bit_rate_value
\ 0000 PUBLIC g_card_in_using
\ 0000 PUBLIC g_card_ok
\ 0000 PUBLIC g_comval
\ 0000 PUBLIC g_file_name_next
\ 0000 PUBLIC g_file_name_time
\ 0000 PUBLIC g_file_no
\ 0000 PUBLIC g_file_total
\ 0000 PUBLIC g_first_start
\ 0000 PUBLIC g_from_browser
\ 0000 PUBLIC g_play_format
\ 0000 PUBLIC g_play_status
\ 0000 PUBLIC g_voice_type
\ 0000 PUBLIC g_voice_vars
\ 0000 EXTERN itoa_2
\ 0000 PUBLIC list
\ 0000 PUBLIC main
\ 0000 PUBLIC make_dirname
\ 0000 PUBLIC menu
\ 0000 PUBLIC numsave
\ 0000 PUBLIC parse_file
\ 0000 PUBLIC read_var
\ 0000 PUBLIC repeat_string
\ 0000 EXTERN res_fp
\ 0000 PUBLIC sel_next
\ 0000 PUBLIC sel_prev
\ 0000 PUBLIC show_error
\ 0000 PUBLIC show_loop
\ 0000 PUBLIC show_speed
\ 0000 EXTERN show_stop
\ 0000 PUBLIC show_volume
\ 0000 PUBLIC slider
\ 0000 PUBLIC speed_callback
\ 0000 PUBLIC time_cmp
\ 0000 EXTERN ui_auto_update
\ 0000 EXTERN ui_err_msg
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ui_show_a
\ 0000 PUBLIC ui_show_h
\ 0000 EXTERN ui_show_msg
\ 0000 EXTERN ui_slider
\ 0000 EXTERN unitochar
\ 0000 EXTERN voiceSendCommand
\ 0000 EXTERN vol_callback
\ 0000 EXTERN wavpSendCommand
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?US_MOD_L02
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 EXTERN ?STRLEN_L11
\ 0000 EXTERN ?STRCAT_L11
\ 0000 EXTERN ?MEMCMP_L11
\ 0000 EXTERN ?STRCHR_L11
\ 0000 RSEG CODE
\ 0000 make_dirname:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice player main program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: main.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
10 *******************************************************************************
11 */
12 #include "actos.h"
13 #include "basal.h"
14 #include "enhanced.h"
15 #include "ap_common.h"
16 #include "ap_voice.h"
17
18 //const
19
20 const WORD repeat_string[7]={VLOOPM1, VLOOPM2, VLOOPM3, VLOOPM4, VLOOPM5, VLOOPM6, VLOOPM7};
21
22
23 //ap使用的系统变量
24 comval_t g_comval; //系统变量,ap不能更改
25
26 //通用系统变量
27 voice_vars_t g_voice_vars;
28
29 //全局变量
30 BYTE g_DiskStateFlag = 0; //Flash 磁盘错误标志
31 //BYTE charge_flag; //充电消息
32 BYTE g_voice_type; //wav:1 act: 2
33 wav_play_status_t g_play_status; //current file status
34 int numsave;
35 //file name length: 32+2, date and time: 2003/12/20 12:59(16+1) + 2 spaces
36 char g_file_name_time[32+2+20];
37 char g_file_name_next[17];
38 WORD g_file_no; //当前文件序号
39 WORD g_file_total; //总文件数
40 BOOL g_card_ok; //储存卡是否可用
41 BOOL g_card_in_using; //储存卡是否在使用
42 WORD g_bit_rate_pic;
43 int g_bit_rate_value; //不能为byte型,否则会溢出
44 BOOL g_first_start;
45 long filelong;
46 //控件变量
47 function_menu_t menu;
48 pop_up_list_t list;
49 slider_t slider;
50 audio_format_t g_play_format;
51 bool g_from_browser = FALSE;
52
53 void make_dirname(void)
54 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 DDE5 PUSH IX
\ 0004 21E0FF LD HL,65504
\ 0007 39 ADD HL,SP
\ 0008 F9 LD SP,HL
55 int result;
56 char Backbuf[32];
57 if(g_voice_vars.location.path[0]==':')
\ 0009 3A3400 LD A,(g_voice_vars+20)
\ 000C FE3A CP 58
\ 000E 200B JR NZ,?0003
\ 0010 ?0002:
58 {
59 strcpy(dir_name,"ROOT");
\ 0010 110000 LD DE,?0004
\ 0013 210000 LD HL,dir_name
\ 0016 CD0000 CALL LWRD ?STRCPY_L11
60 }
61 else
\ 0019 1864 JR ?0005
\ 001B ?0003:
62 {
63
64 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 001B 210000 LD HL,0
\ 001E E5 PUSH HL
\ 001F 0E02 LD C,2
\ 0021 23 INC HL
\ 0022 23 INC HL
\ 0023 39 ADD HL,SP
\ 0024 EB EX DE,HL
\ 0025 CD0000 CALL LWRD FS_Backup
\ 0028 E1 POP HL
65 dir_name[0] = ':';
\ 0029 3E3A LD A,58
\ 002B 320000 LD (dir_name),A
66 FS_CD("\\");
\ 002E 110500 LD DE,?0006
\ 0031 CD0000 CALL LWRD FS_CD
67 memcpy(dir_name, g_voice_vars.location.path, 12);
\ 0034 010C00 LD BC,12
\ 0037 110000 LD DE,dir_name
\ 003A 213400 LD HL,g_voice_vars+20
\ 003D EDB0 LDIR
68 result = FS_GetName(dir_name, 14 ); //取出长名
\ 003F 0E0E LD C,14
\ 0041 110000 LD DE,dir_name
\ 0044 CD0000 CALL LWRD FS_GetName
\ 0047 0600 LD B,0
69 if (result != 0)
\ 0049 B7 OR A
\ 004A 2815 JR Z,?0008
\ 004C ?0007:
70 {
71 unitochar(dir_name, sizeof(dir_name), g_comval.langid);
\ 004C 210C00 LD HL,g_comval+12
\ 004F 4E LD C,(HL)
\ 0050 C5 PUSH BC
\ 0051 0E1E LD C,30
\ 0053 110000 LD DE,dir_name
\ 0056 3E00 LD A,BYTE3 unitochar
\ 0058 210000 LD HL,LWRD unitochar
\ 005B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 005E F1 POP AF
72 }
73 else
\ 005F 1810 JR ?0009
\ 0061 ?0008:
74 {
75 memcpy(dir_name, g_voice_vars.location.path, 12);
\ 0061 0E0C LD C,12
\ 0063 110000 LD DE,dir_name
\ 0066 213400 LD HL,g_voice_vars+20
\ 0069 EDB0 LDIR
76 dir_name[8]=0;
\ 006B 320800 LD (dir_name+8),A
77 dir_name[9]=0;
\ 006E 320900 LD (dir_name+9),A
\ 0071 ?0009:
78 }
79
80 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 0071 210000 LD HL,0
\ 0074 E5 PUSH HL
\ 0075 0E02 LD C,2
\ 0077 23 INC HL
\ 0078 23 INC HL
\ 0079 39 ADD HL,SP
\ 007A EB EX DE,HL
\ 007B CD0000 CALL LWRD FS_Restore
\ 007E E1 POP HL
\ 007F ?0005:
81
82 }
83
84
85 }
\ 007F 212000 LD HL,32
\ 0082 ?0137:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -