📄 main.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 28/Sep/107 08:45:02 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_main\main.c #
# List file = d:\case_i_d913f\ap\ap_main\list\main.lst #
# Object file = d:\case_i_d913f\ap\ap_main\release\obj\main.r01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_main\release\Obj\ #
# -e -K -w -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_main\List\ -q -t8 -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# d:\case_i_d913f\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 RSEG IDATA0(0)
\ 0000 RSEG CDATA0(0)
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN DRV_DetectUD
\ 0000 EXTERN DRV_Install
\ 0000 PUBLIC DisplayDelay
\ 0000 EXTERN ExecAP
\ 0000 EXTERN GetBattery
\ 0000 EXTERN GetDefaultComval
\ 0000 EXTERN GetSysMsg
\ 0000 EXTERN GetUsbCableStatus
\ 0000 EXTERN ResClose
\ 0000 EXTERN ResOpen
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN SetAsciiFont
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetContrast
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN StandbyScreen
\ 0000 EXTERN SuppCardFlag
\ 0000 EXTERN TextOutRect
\ 0000 EXTERN VMRead
\ 0000 EXTERN VMWrite
\ 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 charge_flag
\ 0000 PUBLIC delay1
\ 0000 EXTERN draw_logo
\ 0000 PUBLIC g_comval
\ 0000 PUBLIC main
\ 0000 PUBLIC menu_pos
\ 0000 PUBLIC name
\ 0000 PUBLIC name_nofm
\ 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 PUBLIC standby_flag
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?C_V_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 * $Id: main.c,v 1.2 2006/06/26 01:13:37 tangwh Exp $
10 *******************************************************************************
11 */
12 #include "actos.h"
13 #include "ap_common.h"
14 #include "pdmodule.h"
15 #include "MenuMode.h"
16
17 #define MAIN_ITEMCOUNT 8
18
19 #ifdef MY_TEST
20 #define MY_DUMP(string, value) \
21 do{ \
22 char dump_buf[6]; \
23 dump_buf[0] = ','; \
24 SetTextPos(0, 16); \
25 PutS((string), -1); \
26 itoa4((value), &dump_buf[1]); \
27 dump_buf[5] = '>'; \
28 PutS(dump_buf, 6); \
29 UpdateScreen(NULL); \
30 while( ap_get_message() != (AP_KEY_EQ| AP_KEY_UP)) {;} \
31 }while(0)
32 #else
33 #define MY_DUMP(string, value)
34 #endif
35
36 //进入录音, 但不自动开始
37 #define RESULT_REC_NOSTART RESULT_USER1
38
39 //进入设定, 关标停留在ADFU
40 #define RESULT_SYSTEM_ADFU (RESULT_USER1+1)
41
42 void draw_logo(BOOL wait_key_up);
43 void draw_staff(void);
44 void DisplayDelay();
45 ///-bool DealList(BYTE lang_id);
46 //global
47 comval_t g_comval;
48 BYTE charge_flag;
49 BYTE standby_flag=0;
50 extern unsigned char SuppCardFlag;
51 const BYTE sec_tester[] =
52 {
53 AP_KEY_PLAY | AP_KEY_UP,
54 AP_KEY_PLAY | AP_KEY_UP,
55 AP_KEY_PLAY | AP_KEY_UP,
56 AP_KEY_PLAY | AP_KEY_UP,
57 AP_KEY_PLAY | AP_KEY_UP,
58 };
59 const BYTE sec_staff[] =
60 {
61 AP_KEY_VOLADD | AP_KEY_UP,
62 AP_KEY_VOLADD | AP_KEY_UP,
63 AP_KEY_VOLADD | AP_KEY_UP,
64 AP_KEY_VOLADD | AP_KEY_UP,
65 AP_KEY_PLAY | AP_KEY_UP
66 };
67
68 const char menu_pos[6]={22,22+18,22+18*2,22+18*3,22+18*4,22+18*5};
69
70 //string ids
71 //const WORD name[MAIN_ITEMCOUNT]={MUSIC,MOVIE,RECORD,PLAY,RADIO,PICTURE,TEXT,SYSTEM/*,BROWSER*/};
72 //const WORD name_nofm[MAIN_ITEMCOUNT-1]={MUSIC,MOVIE,RECORD,PLAY,PICTURE,TEXT,SYSTEM/*,BROWSER*/};
73 const WORD name[MAIN_ITEMCOUNT]={SMUSIC,SMOVIE,SRECORD,SVOICE,SRADIO,SVIEW,SREADER,SSYSTEM};
74 const WORD name_nofm[MAIN_ITEMCOUNT-1]={SMUSIC,SMOVIE,SRECORD,SVOICE,SVIEW,SREADER,SSYSTEM};
75
76 //ap id
77 const WORD ap_id[MAIN_ITEMCOUNT]={RESULT_MUSIC,RESULT_MOVIE, RESULT_REC_NOSTART,
78 RESULT_VOICE, RESULT_RADIO, RESULT_VIEW,RESULT_READER, RESULT_SYSTEM/*,RESULT_BROWSER*/};
79 const WORD ap_id_nofm[MAIN_ITEMCOUNT-1]={RESULT_MUSIC,RESULT_MOVIE,RESULT_REC_NOSTART,
80 RESULT_VOICE, RESULT_VIEW,RESULT_READER, RESULT_SYSTEM/*,RESULT_BROWSER*/};
81
82
83
84 #ifdef MAIN_DEBUG
85 char lan_id=0; //for test, language id
86 function_menu_t menu;
87 slider_t slider;
88
89 void test(void);
90 #endif /* MAIN_DEBUG*/
91 /*
92 ********************************************************************************
93 * Description : 初始化系统设置变量
94 *
95 * Arguments :
96 *
97 * Returns :
98 *
99 * Notes :
100 *
101 ********************************************************************************
102 */
103 void read_var(void)
104 {
\ 0000 C5 PUSH BC
\ 0001 D5 PUSH DE
\ 0002 F5 PUSH AF
105 BOOL result;
106
107 //read comval
108 result = VMRead(&g_comval, VM_SYSTEM, sizeof(g_comval));
\ 0003 212000 LD HL,32
\ 0006 E5 PUSH HL
\ 0007 010002 LD BC,512
\ 000A 110000 LD DE,g_comval
\ 000D CD0000 CALL LWRD VMRead
\ 0010 E1 POP HL
109 ASSERT(result);
110
111 //check if valid
112 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 2834 JR Z,?0003
\ 001D ?0002:
113 {
114 DUMP_STRING("comval init-ed!");
115
116 //COMVAL_INIT(g_comval);
117 GetDefaultComval(&g_comval);
\ 001D 110000 LD DE,g_comval
\ 0020 CD0000 CALL LWRD GetDefaultComval
118 g_comval.BatteryType = BATT_TYPE_LITHIUM;
\ 0023 3E02 LD A,2
\ 0025 320F00 LD (g_comval+15),A
119 g_comval.Lightmode=1;
\ 0028 3E01 LD A,1
\ 002A 321400 LD (g_comval+20),A
120 g_comval.EarProtect_flag = 0;
\ 002D AF XOR A
\ 002E 321800 LD (g_comval+24),A
121 g_comval.EarProtectThreshold = 22;
\ 0031 3E16 LD A,22
\ 0033 321900 LD (g_comval+25),A
122 g_comval.attenuation_flag = 0;
\ 0036 AF XOR A
\ 0037 321A00 LD (g_comval+26),A
123 g_comval.auto_switchoff_time = 0;
\ 003A 6F LD L,A
\ 003B 67 LD H,A
\ 003C 221B00 LD (g_comval+27),HL
124 g_comval.OnlineMode = 1; //Jerry Xie Add for test
\ 003F 3E01 LD A,1
\ 0041 320E00 LD (g_comval+14),A
125 g_comval.KeyTone = 0; //Jerry Xie Add for test
\ 0044 AF XOR A
\ 0045 321D00 LD (g_comval+29),A
126 //write to vm
127 result = VMWrite(&g_comval, VM_SYSTEM);
\ 0048 010002 LD BC,512
\ 004B 110000 LD DE,g_comval
\ 004E CD0000 CALL LWRD VMWrite
\ 0051 ?0003:
128 ASSERT(result);
129
130 }
131 #ifdef SupportCard
132 SuppCardFlag=1; //此变量初始化为1,支持插卡; 为0,不支持插卡 ,可在方案中选择
133 #else
134 SuppCardFlag=0;
\ 0051 AF XOR A
\ 0052 320000 LD (SuppCardFlag),A
135 #endif
136 //init ap message
137 ap_message_init(&g_comval);
\ 0055 110000 LD DE,g_comval
\ 0058 3E00 LD A,BYTE3 ap_message_init
\ 005A 210000 LD HL,LWRD ap_message_init
\ 005D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
138 //sKY_SetBLightColor(g_comval.BLightColor); //设置背光颜色。for s2 by ccm
139
140 //set contrast just in main ap
141 SetContrast(g_comval.DisplayContrast);
\ 0060 ED5B0800 LD DE,(g_comval+8)
\ 0064 CD0000 CALL LWRD SetContrast
142 }
\ 0067 E1 POP HL
\ 0068 D1 POP DE
\ 0069 C1 POP BC
\ 006A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 006D delay1:
143
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -