📄 main.lst
字号:
167 int i;
168 char key;
169 char IsUDisk=0;
170 int result;
171 int result_bak=0; //关机时把上次执行的ap记在此
172 BOOL need_draw=TRUE;
173 BYTE sec_tester_count = 0;
174 BYTE sec_staff_count = 0;
175 BYTE item_count; //主界面有几个项目
176 BYTE item_index;
177 BOOL with_fm; //存在fm模块
178 #ifdef SDK35FD
179 usbval_t g_usbval;
180 #endif
181 output8(0x4e,input8(0x4e) | 0x08);
\ 005D DB4E IN A,(78)
\ 005F CBDF SET 3,A
\ 0061 D34E OUT (78),A
182
183 // output8(0x4e,input8(0x4e)& 0x7f); //测试用,关Watchdog
184 /* enable watch-dog */
185 //output8(REG4E_RTC_WATCH_DOG, 0xaa);
186
187 #ifdef CHGVDD
188 output8(0x4f,0xa2); //VCC set to 3.0V, VDD set to 1.8V first step
\ 0063 3EA2 LD A,162
\ 0065 D34F OUT (79),A
189 #else
190 output8(0x4f,0xa5); //VCC set to 3.0V, VDD set to 2.1V second step
191 #endif
192 for (counter=0; counter<0x80; counter++){;}
\ 0067 210000 LD HL,0
\ 006A 221500 LD (counter),HL
\ 006D AF XOR A
\ 006E DD77EA LD (IX-22),A
\ 0071 DD77EB LD (IX-21),A
\ 0074 DD77F2 LD (IX-14),A
\ 0077 DD77F3 LD (IX-13),A
\ 007A DD36F401 LD (IX-12),1
\ 007E DD74F5 LD (IX-11),H
\ 0081 DD74F6 LD (IX-10),H
\ 0084 ?0007:
\ 0084 018080 LD BC,32896
\ 0087 78 LD A,B
\ 0088 AC XOR H
\ 0089 67 LD H,A
\ 008A ED42 SBC HL,BC
\ 008C 3009 JR NC,?0006
\ 008E ?0008:
\ 008E 2A1500 LD HL,(counter)
\ 0091 23 INC HL
\ 0092 221500 LD (counter),HL
\ 0095 18ED JR ?0007
\ 0097 ?0006:
193
194 //ExecAP("config.ap", 0); //for s2. del by ccm
195 //安装驱动
196 if(!DRV_Install("UI_S0724.DRV",0)) while(1) {;} //缺省简体
\ 0097 010000 LD BC,0
\ 009A 110000 LD DE,?0012
\ 009D CD0000 CALL LWRD DRV_Install
\ 00A0 B7 OR A
\ 00A1 2002 JR NZ,?0011
\ 00A3 ?0010:
\ 00A3 ?0014:
\ 00A3 18FE JR ?0010
\ 00A5 ?0011:
197 if(!DRV_Install("ky_hard.drv",0)) while(1) {;}
\ 00A5 010000 LD BC,0
\ 00A8 110D00 LD DE,?0018
\ 00AB CD0000 CALL LWRD DRV_Install
\ 00AE B7 OR A
\ 00AF 2002 JR NZ,?0017
\ 00B1 ?0016:
\ 00B1 ?0020:
\ 00B1 18FE JR ?0016
\ 00B3 ?0017:
198 if(!DRV_Install("vm_nanf.drv",0)) while(1) {;}
\ 00B3 010000 LD BC,0
\ 00B6 111900 LD DE,?0024
\ 00B9 CD0000 CALL LWRD DRV_Install
\ 00BC B7 OR A
\ 00BD 2002 JR NZ,?0023
\ 00BF ?0022:
\ 00BF ?0026:
\ 00BF 18FE JR ?0022
\ 00C1 ?0023:
199
200 //打开lcd
201 ClearScreen(NULL);
\ 00C1 CD7C06 CALL LWRD ?0289
202 UpdateScreen(NULL); //recommended by chliang
203 StandbyScreen(TRUE);
204 enable_interrupt();
\ 00C4 FB EI
205
206
207 read_var();
\ 00C5 3E00 LD A,BYTE3 read_var
\ 00C7 210000 LD HL,LWRD read_var
\ 00CA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
208
209 #ifdef SDK35FD
210 VMRead(&g_usbval, VM_AP_UDISK, sizeof(usbval_t));
\ 00CD 210100 LD HL,1
\ 00D0 E5 PUSH HL
\ 00D1 01001C LD BC,7168
\ 00D4 2E12 LD L,18
\ 00D6 39 ADD HL,SP
\ 00D7 EB EX DE,HL
\ 00D8 CD0000 CALL LWRD VMRead
\ 00DB E1 POP HL
211 #endif
212
213 //安装驱动
214 switch (g_comval.langid)
\ 00DC ED5B0C00 LD DE,(g_comval+12)
\ 00E0 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 00E3 01 DEFB 1
\ 00E4 0400 DEFW 4
\ 00E6 2801 DEFW ?0028
\ 00E8 1A01 DEFW ?0050
\ 00EA F000 DEFW ?0029
\ 00EC FE00 DEFW ?0036
\ 00EE 0C01 DEFW ?0043
\ 00F0 ?0029:
215 {
216 case 2:
217 if(!DRV_Install("UI_T0724.DRV",1)) while(1) {;}
\ 00F0 010100 LD BC,1
\ 00F3 112500 LD DE,?0032
\ 00F6 CD0000 CALL LWRD DRV_Install
\ 00F9 B7 OR A
\ 00FA 202C JR NZ,?0028
\ 00FC ?0030:
\ 00FC ?0034:
218 break;
\ 00FC 18FE JR ?0030
\ 00FE ?0031:
\ 00FE ?0036:
219 case 3:
220 if(!DRV_Install("UI_J0724.DRV",1)) while(1) {;}
\ 00FE 010100 LD BC,1
\ 0101 113200 LD DE,?0039
\ 0104 CD0000 CALL LWRD DRV_Install
\ 0107 B7 OR A
\ 0108 201E JR NZ,?0028
\ 010A ?0037:
\ 010A ?0041:
221 break;
\ 010A 18FE JR ?0037
\ 010C ?0038:
\ 010C ?0043:
222 case 4:
223 if(!DRV_Install("UI_K0724.DRV",1)) while(1) {;}
\ 010C 010100 LD BC,1
\ 010F 113F00 LD DE,?0046
\ 0112 CD0000 CALL LWRD DRV_Install
\ 0115 B7 OR A
\ 0116 2010 JR NZ,?0028
\ 0118 ?0044:
\ 0118 ?0048:
224 break;
\ 0118 18FE JR ?0044
\ 011A ?0045:
\ 011A ?0050:
225 case LAN_ID_ENGLISH:
226 if(!DRV_Install("UI_L0724.DRV",1)) while(1) {;}
\ 011A 010100 LD BC,1
\ 011D 114C00 LD DE,?0053
\ 0120 CD0000 CALL LWRD DRV_Install
\ 0123 B7 OR A
\ 0124 2002 JR NZ,?0028
\ 0126 ?0051:
\ 0126 ?0055:
227 break;
\ 0126 18FE JR ?0051
\ 0128 ?0052:
\ 0128 ?0057:
228 default:
229 break;
\ 0128 ?0028:
230 }
231
232 ClearScreen(NULL);
\ 0128 CD7C06 CALL LWRD ?0289
233 UpdateScreen(NULL); //recommended by chliang
234 StandbyScreen(TRUE);
235 //TODO: support other language
236
237 //初始化资源文件
238 res_fp = ResOpen("ui30.res");
\ 012B 115900 LD DE,?0058
\ 012E 3E00 LD A,BYTE3 ResOpen
\ 0130 210000 LD HL,LWRD ResOpen
\ 0133 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0136 220000 LD (res_fp),HL
239 ASSERT( res_fp != NULL);
240
241 //mainap 的启动参数
242 //result = param;
243 //result =RESULT_FIRST_BOOT;
244 result = RESULT_MAIN;
\ 0139 FD210A00 LD IY,10
\ 013D ?0060:
245
246 //clear the message pool
247 while(GetSysMsg() != Msg_KeyNull) {;}
\ 013D CD0000 CALL LWRD GetSysMsg
\ 0140 B7 OR A
\ 0141 20FA JR NZ,?0060
\ 0143 ?0061:
\ 0143 ?0059:
248
249 //show logo 1s
250 //ResShowLogo(BOOTLOGO);
251 //ap_sleep(2);
252 draw_logo(FALSE);
\ 0143 5F LD E,A
\ 0144 3E00 LD A,BYTE3 draw_logo
\ 0146 210000 LD HL,LWRD draw_logo
\ 0149 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
253
254 #ifdef MAIN_DEBUG
255 test();
256 #endif /* MAIN_DEBUG*/
257
258 IsUDisk = g_comval.Onlinedev;
\ 014C 3A1300 LD A,(g_comval+19)
\ 014F DD77EF LD (IX-17),A
259 //check if usb plugin
260 if(GetUsbCableStatus())
\ 0152 CD0000 CALL LWRD GetUsbCableStatus
\ 0155 B7 OR A
\ 0156 2804 JR Z,?0063
\ 0158 ?0062:
261 {
262 result = RESULT_UDISK; //or RESULT_PDDRM
\ 0158 FD210400 LD IY,4
\ 015C ?0063:
263 }
264
265 //check if fm exists, 0表示有fm, 比较奇怪
266 with_fm = !g_comval.FMBuildInFlag;
\ 015C 3A1000 LD A,(g_comval+16)
\ 015F B7 OR A
\ 0160 2004 JR NZ,?0248
\ 0162 3E01 LD A,1
\ 0164 1801 JR ?0249
\ 0166 ?0248:
\ 0166 AF XOR A
\ 0167 ?0249:
\ 0167 DD77F9 LD (IX-7),A
267 if(with_fm) item_count = MAIN_ITEMCOUNT;
\ 016A B7 OR A
\ 016B 2806 JR Z,?0065
\ 016D ?0064:
\ 016D DD36F706 LD (IX-9),6
\ 0171 1804 JR ?0066
\ 0173 ?0065:
268 else item_count = MAIN_ITEMCOUNT-1;
\ 0173 DD36F705 LD (IX-9),5
\ 0177 ?0066:
\ 0177 ?0068:
269
270
271 while(1)
272 {
273 output8(0x4e,input8(0x4e) | 0x08);
\ 0177 DB4E IN A,(78)
\ 0179 CBDF SET 3,A
\ 017B D34E OUT (78),A
274
275 //check if ap_main.ap started with param
276 if(result == RESULT_NULL || result == RESULT_MAIN)
\ 017D FDE5 PUSH IY
\ 017F E1 POP HL
\ 0180 7D LD A,L
\ 0181 B4 OR H
\ 0182 2807 JR Z,?0072
\ 0184 3E0A LD A,10
\ 0186 AD XOR L
\ 0187 B4 OR H
\ 0188 C2CA03 JP NZ,?0071
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -