📄 sub_function2.lst
字号:
172 * Description : 获取文件选择器的出错类型 (文件选择器错处理)
173 *
174 * Arguments : void
175 *
176 * Returns : int 出错号
177 *
178 * Notes :
179 *
180 ********************************************************************************
181 */
182 bool DealErrCase( void )
183 {
\ 0204 C5 PUSH BC
\ 0205 D5 PUSH DE
\ 0206 F5 PUSH AF
184
185 BYTE id;
186
187
188 id = FSELGetErrID();
\ 0207 3E00 LD A,BYTE3 fselGetErrID
\ 0209 210000 LD HL,LWRD fselGetErrID
\ 020C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 020F E5 PUSH HL
\ 0210 210200 LD HL,2
\ 0213 39 ADD HL,SP
\ 0214 C1 POP BC
\ 0215 71 LD (HL),C
\ 0216 ?0027:
189 while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
\ 0216 CD0000 CALL LWRD ap_get_message
\ 0219 B7 OR A
\ 021A 20FA JR NZ,?0027
\ 021C ?0028:
\ 021C ?0026:
190 switch (id)
\ 021C 6F LD L,A
\ 021D 67 LD H,A
\ 021E 39 ADD HL,SP
\ 021F 7E LD A,(HL)
\ 0220 FE02 CP 2
\ 0222 200C JR NZ,?0031
\ 0224 ?0030:
191 {
192 case FSEL_ERR_EMPTY:
193 ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
\ 0224 ED4B0000 LD BC,(g_langid)
\ 0228 0600 LD B,0
\ 022A C5 PUSH BC
\ 022B 017402 LD BC,628
\ 022E 1812 JR ?0042
194 ap_sleep(4);
195 break;
\ 0230 ?0031:
\ 0230 FE15 CP 21
\ 0232 3824 JR C,?0029
\ 0234 FE17 CP 23
\ 0236 3020 JR NC,?0029
196
197 case FSEL_ERR_FAIL:
198 case FSEL_ERR_DISK:
199 ui_show_msg (MREADERR, MREADERR, g_langid);
\ 0238 ED4B0000 LD BC,(g_langid)
\ 023C 0600 LD B,0
\ 023E C5 PUSH BC
\ 023F 01FC01 LD BC,508
\ 0242 ?0042:
\ 0242 59 LD E,C
\ 0243 50 LD D,B
\ 0244 3E00 LD A,BYTE3 ui_show_msg
\ 0246 210000 LD HL,LWRD ui_show_msg
\ 0249 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 024C F1 POP AF
200 ap_sleep(4);
\ 024D 110400 LD DE,4
\ 0250 3E00 LD A,BYTE3 ap_sleep
\ 0252 210000 LD HL,LWRD ap_sleep
\ 0255 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
201 break;
\ 0258 ?0032:
202
203 default:
204 break;
\ 0258 ?0029:
205 }
206
207 ResClose(g_Resfp_Sav);
\ 0258 ED5B0000 LD DE,(g_Resfp_Sav)
\ 025C 3E00 LD A,BYTE3 ResClose
\ 025E 210000 LD HL,LWRD ResClose
\ 0261 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
208 return 0;
\ 0264 2E00 LD L,0
209
210 }
\ 0266 F1 POP AF
\ 0267 D1 POP DE
\ 0268 C1 POP BC
\ 0269 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 026C openDAC:
211
212
213 void openDAC(void)
214 {
\ 026C D5 PUSH DE
\ 026D F5 PUSH AF
\ 026E F5 PUSH AF
215 dac_t dacattr;
216 output8(0x5,0xf7); // set the 05 regsiter
\ 026F 3EF7 LD A,247
\ 0271 D305 OUT (5),A
217 output8(0x4e,input8(0x4e)|0x8);
\ 0273 DB4E IN A,(78)
\ 0275 CBDF SET 3,A
\ 0277 D34E OUT (78),A
218
219 dacattr.dacselect = 0;
\ 0279 210000 LD HL,0
\ 027C 39 ADD HL,SP
\ 027D 3600 LD (HL),0
220 dacattr.rate = 22;
\ 027F 23 INC HL
\ 0280 3616 LD (HL),22
221 EnableDAC(&dacattr);
\ 0282 2B DEC HL
\ 0283 EB EX DE,HL
\ 0284 CD0000 CALL LWRD EnableDAC
222
223 }
\ 0287 E1 POP HL
\ 0288 E1 POP HL
\ 0289 D1 POP DE
\ 028A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 028D ClearTimePara:
224
225 void ClearTimePara(void)
226 {
\ 028D C5 PUSH BC
227 BYTE i;
228 g_amv_vars.amvfilebreakpoint.AmvFileFLashDot=0;
\ 028E 010000 LD BC,0
\ 0291 ED433000 LD (g_amv_vars+48),BC
\ 0295 ED433200 LD (g_amv_vars+50),BC
229 g_amv_vars.amvfilebreakpoint.TimeSec=0;
\ 0299 AF XOR A
\ 029A 323400 LD (g_amv_vars+52),A
230 g_amv_vars.amvfilebreakpoint.TimeMin=0;
\ 029D 323500 LD (g_amv_vars+53),A
231 g_amv_vars.amvfilebreakpoint.TimeHou=0;
\ 02A0 323600 LD (g_amv_vars+54),A
232
233
234 }
\ 02A3 C1 POP BC
\ 02A4 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02A7 GetInformation1:
235
236
237
238 /*
239 ********************************************************************************
240 * int GetInformation(void)
241 *
242 * Description : 读取歌曲信息,歌词
243 *
244 * Arguments : void
245 *
246 * Returns : int
247 *
248 * Notes :
249 *
250 ********************************************************************************
251 */
252 int GetInformation1( void )//取下一首文件信息
253 {
\ 02A7 C5 PUSH BC
\ 02A8 D5 PUSH DE
\ 02A9 DDE5 PUSH IX
254 int result;
255 memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
\ 02AB 010C00 LD BC,12
\ 02AE 110000 LD DE,g_TagInfoBuf
\ 02B1 211F00 LD HL,g_amv_vars+31
\ 02B4 EDB0 LDIR
256 result = FS_GetName(g_TagInfoBuf, 31); //取出长名
\ 02B6 0E1F LD C,31
\ 02B8 110000 LD DE,g_TagInfoBuf
\ 02BB CD0000 CALL LWRD FS_GetName
\ 02BE 0600 LD B,0
257 if (result != 0)
\ 02C0 B7 OR A
\ 02C1 2815 JR Z,?0034
\ 02C3 ?0033:
258 {
259 unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_langid);
\ 02C3 3A0000 LD A,(g_langid)
\ 02C6 4F LD C,A
\ 02C7 C5 PUSH BC
\ 02C8 0E42 LD C,66
\ 02CA 110000 LD DE,g_TagInfoBuf
\ 02CD 3E00 LD A,BYTE3 unitochar
\ 02CF 210000 LD HL,LWRD unitochar
\ 02D2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02D5 F1 POP AF
260 }
261 else
\ 02D6 1810 JR ?0035
\ 02D8 ?0034:
262 {
263 memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
\ 02D8 0E0C LD C,12
\ 02DA 110000 LD DE,g_TagInfoBuf
\ 02DD 211F00 LD HL,g_amv_vars+31
\ 02E0 EDB0 LDIR
264 g_TagInfoBuf[8]=0;
\ 02E2 320800 LD (g_TagInfoBuf+8),A
265 g_TagInfoBuf[9]=0;
\ 02E5 320900 LD (g_TagInfoBuf+9),A
\ 02E8 ?0035:
266 }
267
268 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 02E8 DB4E IN A,(78)
\ 02EA CBDF SET 3,A
\ 02EC D34E OUT (78),A
269 }
\ 02EE DDE1 POP IX
\ 02F0 D1 POP DE
\ 02F1 C1 POP BC
\ 02F2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02F5 GetInformation:
270
271
272 int GetInformation( void )
273 {
\ 02F5 C5 PUSH BC
\ 02F6 D5 PUSH DE
\ 02F7 DDE5 PUSH IX
274 int result;
275
276 memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
\ 02F9 010C00 LD BC,12
\ 02FC 110000 LD DE,g_TagInfoBuf
\ 02FF 211F00 LD HL,g_amv_vars+31
\ 0302 EDB0 LDIR
277 result = FS_GetName(g_TagInfoBuf, 32); //取出长名
\ 0304 0E20 LD C,32
\ 0306 110000 LD DE,g_TagInfoBuf
\ 0309 CD0000 CALL LWRD FS_GetName
\ 030C 0600 LD B,0
278 if (result != 0)
\ 030E B7 OR A
\ 030F 2815 JR Z,?0037
\ 0311 ?0036:
279 {
280 unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_langid);
\ 0311 3A0000 LD A,(g_langid)
\ 0314 4F LD C,A
\ 0315 C5 PUSH BC
\ 0316 0E42 LD C,66
\ 0318 110000 LD DE,g_TagInfoBuf
\ 031B 3E00 LD A,BYTE3 unitochar
\ 031D 210000 LD HL,LWRD unitochar
\ 0320 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0323 F1 POP AF
281 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -