📄 main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 12/Apr/106 09:56:19 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d35f\ap\ap_main\main.c #
# List file = d:\case_i_d35f\ap\ap_main\list\main.lst #
# Object file = d:\case_i_d35f\ap\ap_main\release\obj\main.r01 #
# Command line = -v0 -mb -OD:\case_i_d35f\ap\ap_main\release\Obj\ #
# -e -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d35f\ap\ap_main\List\ -q -t8 -X #
# -Id:\sdk_i_35f\inc\ -Id:\case_i_d35f\inc\ #
# d:\case_i_d35f\AP\AP_MAIN\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 EXTERN ClearScreen
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN DRV_Install
\ 0000 EXTERN ExecAP
\ 0000 EXTERN GetDefaultComval
\ 0000 EXTERN GetSysMsg
\ 0000 EXTERN GetUsbCableStatus
\ 0000 EXTERN ResClose
\ 0000 EXTERN ResOpen
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetContrast
\ 0000 EXTERN StandbyScreen
\ 0000 EXTERN SuppCardFlag
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 0000 PUBLIC active_id
\ 0000 PUBLIC active_id_nofm
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 PUBLIC ap_id
\ 0000 PUBLIC ap_id_nofm
\ 0000 EXTERN ap_message_init
\ 0000 PUBLIC counter
\ 0000 EXTERN draw_logo
\ 0000 EXTERN draw_staff
\ 0000 PUBLIC g_comval
\ 0000 PUBLIC inactive_id
\ 0000 PUBLIC inactive_id_nofm
\ 0000 PUBLIC inactive_pos
\ 0000 PUBLIC inactive_pos_nofm
\ 0000 PUBLIC main
\ 0000 PUBLIC read_var
\ 0000 EXTERN res_fp
\ 0000 EXTERN sKY_CloseBacklight
\ 0000 EXTERN sKY_OpenBacklight
\ 0000 PUBLIC sec_staff
\ 0000 PUBLIC sec_tester
\ 0000 EXTERN ui_auto_update
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?C_S_SWITCH_L06
\ 0000 EXTERN ?S_V_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 RSEG CODE
\ 0000 read_var:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * main ap of sdk 3.0
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *******************************************************************************
10 */
11 #include "actos.h"
12 #include "ap_common.h"
13
14 #ifdef SDK35FD
15 #include "pdmodule.h"
16 #endif
17
18 //#define CAMERA SYSTEM
19 //#define CAMERAA SYSTEMA
20 #define MAIN_ITEMCOUNT 6
21
22 #define CHGVDD
23
24 //用户测试时定义这两个常量
25 //#define MAIN_DEBUG
26 //#define YOUR_AP_NAME "ap_voice.AP"
27
28 //#define MY_TEST //for m-record.ap test by ccm
29
30 #ifdef MY_TEST
31 #define MY_DUMP(string, value) \
32 do{ \
33 char dump_buf[6]; \
34 dump_buf[0] = ','; \
35 SetTextPos(0, 16); \
36 PutS((string), -1); \
37 itoa4((value), &dump_buf[1]); \
38 dump_buf[5] = '>'; \
39 PutS(dump_buf, 6); \
40 UpdateScreen(NULL); \
41 while( ap_get_message() != (AP_KEY_EQ| AP_KEY_UP)) {;} \
42 }while(0)
43 #else
44 #define MY_DUMP(string, value)
45 #endif
46
47 //进入录音, 但不自动开始
48 #define RESULT_REC_NOSTART RESULT_USER1
49
50 //进入设定, 关标停留在ADFU
51 #define RESULT_SYSTEM_ADFU (RESULT_USER1+1)
52
53 void draw_logo(BOOL wait_key_up);
54 void draw_staff(void);
55
56 //global
57 comval_t g_comval;
58 extern unsigned char SuppCardFlag;
59 int counter;
60
61 //secrect key sequence
62 const BYTE sec_tester[] =
63 {
64 AP_KEY_PLAY | AP_KEY_UP,
65 AP_KEY_PLAY | AP_KEY_UP,
66 AP_KEY_PLAY | AP_KEY_UP,
67 AP_KEY_PLAY | AP_KEY_UP,
68 AP_KEY_PLAY | AP_KEY_UP,
69 };
70 const BYTE sec_staff[] =
71 {
72 AP_KEY_VOLADD | AP_KEY_UP,
73 AP_KEY_VOLADD | AP_KEY_UP,
74 AP_KEY_VOLADD | AP_KEY_UP,
75 AP_KEY_VOLADD | AP_KEY_UP,
76 AP_KEY_PLAY | AP_KEY_UP
77 };
78
79 //pic ids
80 const WORD inactive_id[MAIN_ITEMCOUNT] = {MUSIC, RECORD, VOICE, FM, SYSTEM,DSC};
81 const WORD active_id[MAIN_ITEMCOUNT] = {MUSICA, RECORDA, VOICEA, FMA, SYSTEMA,DSCOK};
82
83 const WORD inactive_id_nofm[MAIN_ITEMCOUNT-1] = {MUSIC, RECORD, VOICE, SYSTEM,CAMERA};
84 const WORD active_id_nofm[MAIN_ITEMCOUNT-1] = {MUSICA, RECORDA, VOICEA, SYSTEMA,CAMERAA};
85
86 //pic position
87 const BYTE inactive_pos[5] = {3, 3+(21+5), 3+(21+5)*2, 3+(21+5)*3, 3+(21+5)*4};
88
89 const BYTE inactive_pos_nofm[5] = {3, 3+(21+5), 3+(21+5)*2, 3+(21+5)*3, 3+(21+5)*4};
90
91 //ap id
92 const WORD ap_id[MAIN_ITEMCOUNT]={RESULT_MUSIC, RESULT_REC_NOSTART,
93 RESULT_VOICE, RESULT_RADIO, RESULT_SYSTEM,RESULT_CAMERA};
94
95 const WORD ap_id_nofm[MAIN_ITEMCOUNT-1]={RESULT_MUSIC, RESULT_REC_NOSTART,
96 RESULT_VOICE, RESULT_SYSTEM,RESULT_CAMERA};
97
98 #ifdef MAIN_DEBUG
99 char lan_id=0; //for test, language id
100 function_menu_t menu;
101 slider_t slider;
102 // progress_t progress;
103
104 void test(void);
105 #endif /* MAIN_DEBUG*/
106 /*
107 ********************************************************************************
108 * Description : 初始化系统设置变量
109 *
110 * Arguments :
111 *
112 * Returns :
113 *
114 * Notes :
115 *
116 ********************************************************************************
117 */
118 void read_var(void)
119 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
120 BOOL result;
121
122 //read comval
123 result = VMRead(&g_comval, VM_SYSTEM, sizeof(g_comval));
\ 0003 211500 LD HL,21
\ 0006 E5 PUSH HL
\ 0007 010002 LD BC,512
\ 000A 110000 LD DE,g_comval
\ 000D CD0000 CALL LWRD VMRead
\ 0010 E1 POP HL
124 ASSERT(result);
125
126 //check if valid
127 if(g_comval.magic != MAGIC_COMVAL)
\ 0011 21ADDE LD HL,57005
\ 0014 ED4B0000 LD BC,(g_comval)
\ 0018 A7 AND A
\ 0019 ED42 SBC HL,BC
\ 001B 280F JR Z,?0003
\ 001D ?0002:
128 {
129 DUMP_STRING("comval init-ed!");
130
131 //COMVAL_INIT(g_comval);
132 GetDefaultComval(&g_comval);
\ 001D 110000 LD DE,g_comval
\ 0020 CD0000 CALL LWRD GetDefaultComval
133
134 //write to vm
135 result = VMWrite(&g_comval, VM_SYSTEM);
\ 0023 010002 LD BC,512
\ 0026 110000 LD DE,g_comval
\ 0029 CD0000 CALL LWRD VMWrite
\ 002C ?0003:
136 ASSERT(result);
137
138 }
139
140 if ( g_comval.SuppCard == 1 )
\ 002C 3A1400 LD A,(g_comval+20)
\ 002F 3D DEC A
\ 0030 2005 JR NZ,?0005
\ 0032 ?0004:
141 {
142 SuppCardFlag = 1;
\ 0032 3E01 LD A,1
\ 0034 320000 LD (SuppCardFlag),A
\ 0037 ?0005:
143 }
144
145 //init ap message
146 ap_message_init(&g_comval);
\ 0037 110000 LD DE,g_comval
\ 003A 3E00 LD A,BYTE3 ap_message_init
\ 003C 210000 LD HL,LWRD ap_message_init
\ 003F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
147 //sKY_SetBLightColor(g_comval.BLightColor); //设置背光颜色。for s2 by ccm
148
149 //set contrast just in main ap
150 SetContrast(g_comval.DisplayContrast);
\ 0042 ED5B0800 LD DE,(g_comval+8)
\ 0046 CD0000 CALL LWRD SetContrast
151 }
\ 0049 E1 POP HL
\ 004A D1 POP DE
\ 004B C1 POP BC
\ 004C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 004F main:
152 /*
153 ********************************************************************************
154 * Description : 主函数
155 *
156 * Arguments :
157 *
158 * Returns : 结果消息或0
159 *
160 * Notes :
161 *
162 ********************************************************************************
163 */
164 int main(int param)
165 {
\ 004F DDE5 PUSH IX
\ 0051 DD210000 LD IX,0
\ 0055 DD39 ADD IX,SP
\ 0057 D5 PUSH DE
\ 0058 21ECFF LD HL,65516
\ 005B 39 ADD HL,SP
\ 005C F9 LD SP,HL
166 int active=0; //当前活动的项目
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -