main.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,352 行 · 第 1/5 页
LST
1,352 行
\ 03C5 48 LD C,B
\ 03C6 ?0134:
\ 03C6 1E09 LD E,9
\ 03C8 C34905 JP LWRD ?0141
\ 03CB C34B05 JP LWRD ?0135
\ 03CE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
230 fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
\ 03D1 C34E05 JP LWRD ?0154
\ 03D4 1E83 LD E,131
\ 03D6 C35305 JP LWRD ?0143
\ 03D9 210000 LD HL,LWRD fmSendCommand
\ 03DC C35805 JP LWRD ?0159
231 Updateflag=1;
\ 03DF 3E01 LD A,1
\ 03E1 C35D05 JP LWRD ?0156
232 need_draw=TRUE;
\ 03E4 C3E405 JP LWRD ?0136
233 break;
\ 03E7 C35102 JP LWRD ?0033
\ 03EA ?0058:
234
235 case AP_KEY_MODE|AP_KEY_UP:
236 g_list.headid = STOPMENU;
\ 03EA 21EA01 LD HL,490
\ 03ED 221000 LD (g_list+6),HL
237 g_list.active=active;
\ 03F0 ED4B0100 LD BC,(?0026)
\ 03F4 42 LD B,D
\ 03F5 ED430E00 LD (g_list+4),BC
238 g_list.total=6+2; //'+1' for FM Record by ccm
\ 03F9 210800 LD HL,8
\ 03FC 220C00 LD (g_list+2),HL
239 g_list.strid=string;
\ 03FF 210000 LD HL,string
\ 0402 220A00 LD (g_list),HL
240 //menu.string_id=0; //多语言修改
241 g_list.string_id=F_comval.langid; //语言标志的选择
\ 0405 3A1F00 LD A,(g_comval+12)
\ 0408 321200 LD (g_list+8),A
242 result=ui_popup_list(&g_list, NULL);
\ 040B 48 LD C,B
\ 040C C5 PUSH BC
\ 040D C5 PUSH BC
\ 040E 110A00 LD DE,g_list
\ 0411 3E00 LD A,BYTE3 ui_popup_list
\ 0413 210000 LD HL,LWRD ui_popup_list
\ 0416 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0419 F1 POP AF
\ 041A F1 POP AF
\ 041B E5 PUSH HL
\ 041C FDE1 POP IY
243 need_draw=TRUE;
244 Updateflag=0;
\ 041E AF XOR A
\ 041F 323300 LD (Updateflag),A
245 //if(result==RESULT_IGNORE)result=0; //del by ccm
246 if(result==RESULT_IGNORE) //按PLAY键和8s超时返回FM收音界面,不执行当前激活的菜单!
\ 0422 DD36FC01 LD (IX-4),1
\ 0426 3E34 LD A,52
\ 0428 AD XOR L
\ 0429 B4 OR H
\ 042A 2007 JR NZ,?0060
\ 042C ?0059:
247 {
248 result = 0;
\ 042C FD210000 LD IY,0
249 break;
\ 0430 C35102 JP LWRD ?0033
\ 0433 ?0060:
250 }
251 if(result!=0) return result;
\ 0433 7D LD A,L
\ 0434 B4 OR H
\ 0435 2806 JR Z,?0062
\ 0437 ?0061:
\ 0437 C30906 JP LWRD ?0120
\ 043A C30C06 JP LWRD ?0121
\ 043D ?0062:
252 active = g_list.active;
\ 043D 3A0E00 LD A,(g_list+4)
\ 0440 320100 LD (?0026),A
253 if(g_list.active==0) //电台保存
\ 0443 2A0E00 LD HL,(g_list+4)
\ 0446 7D LD A,L
\ 0447 B4 OR H
\ 0448 201A JR NZ,?0064
\ 044A ?0063:
254 {
255 if(fmSendCommand(MC_SAVESTATION,0)!=FALSE)
\ 044A 1E0B LD E,11
\ 044C CD1000 CALL LWRD ?0169
\ 044F 2C INC L
\ 0450 2D DEC L
\ 0451 CA5102 JP Z,?0033
\ 0454 ?0065:
256 {
257 fmSendCommand(MC_BACKUP,(int)&radio_param);
\ 0454 1845 JR ?0158
\ 0456 1E44 LD E,68
\ 0458 C3CC05 JP LWRD ?0160
\ 045B 210000 LD HL,LWRD fmSendCommand
\ 045E C3D105 JP LWRD ?0150
\ 0461 ?0066:
\ 0461 C35102 JP LWRD ?0033
\ 0464 ?0064:
258 }
259 }
260 //menu.active==2: add for FM record by ccm //电台录音
261 else if(g_list.active==1)
\ 0464 3E01 LD A,1
\ 0466 AD XOR L
\ 0467 B4 OR H
\ 0468 2006 JR NZ,?0069
\ 046A ?0068:
262 {
263 return RESULT_FMREC_NOSTART;
\ 046A 210E00 LD HL,14
264 }
\ 046D C30C06 JP LWRD ?0121
\ 0470 ?0069:
265 else if(g_list.active==2) //删除单个电台
\ 0470 3E02 LD A,2
\ 0472 AD XOR L
\ 0473 B4 OR H
\ 0474 201A JR NZ,?0071
\ 0476 ?0070:
266 {
267 if(fmSendCommand(MC_DELONE,0)!=FALSE)
\ 0476 1E55 LD E,85
\ 0478 CD1000 CALL LWRD ?0169
\ 047B 2C INC L
\ 047C 2D DEC L
\ 047D CA5102 JP Z,?0033
\ 0480 ?0072:
268 {
269 fmSendCommand(MC_BACKUP,(int)&radio_param);
\ 0480 1819 JR ?0158
\ 0482 1E44 LD E,68
\ 0484 C3CC05 JP LWRD ?0160
\ 0487 210000 LD HL,LWRD fmSendCommand
\ 048A C3D105 JP LWRD ?0150
\ 048D ?0073:
\ 048D C35102 JP LWRD ?0033
\ 0490 ?0071:
270 }
271 }
272 else if(g_list.active==3) //删除全部电台
\ 0490 3E03 LD A,3
\ 0492 AD XOR L
\ 0493 B4 OR H
\ 0494 2016 JR NZ,?0076
\ 0496 ?0075:
273 {
274 fmSendCommand(MC_DELALL,0);
\ 0496 1E56 LD E,86
\ 0498 CD1000 CALL LWRD ?0169
275 fmSendCommand(MC_BACKUP,(int)&radio_param);
\ 049B ?0158:
\ 049B 010200 LD BC,radio_param
\ 049E 1E44 LD E,68
\ 04A0 C3CC05 JP LWRD ?0160
\ 04A3 210000 LD HL,LWRD fmSendCommand
\ 04A6 C3D105 JP LWRD ?0150
\ 04A9 C35102 JP LWRD ?0033
\ 04AC ?0076:
276 }
277 else if(g_list.active==4) //全自动搜台.
\ 04AC 3E04 LD A,4
\ 04AE AD XOR L
\ 04AF B4 OR H
\ 04B0 2042 JR NZ,?0079
\ 04B2 ?0078:
278 {
279 result=AutoSearchHandle(10);
\ 04B2 1E0A LD E,10
\ 04B4 3E00 LD A,BYTE3 AutoSearchHandle
\ 04B6 210000 LD HL,LWRD AutoSearchHandle
\ 04B9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04BC E5 PUSH HL
\ 04BD FDE1 POP IY
280 if(result==RESULT_IGNORE)result=0;
\ 04BF 3E34 LD A,52
\ 04C1 AD XOR L
\ 04C2 B4 OR H
\ 04C3 2004 JR NZ,?0081
\ 04C5 ?0080:
\ 04C5 FD210000 LD IY,0
\ 04C9 ?0081:
281 if(result!=0)return result;
\ 04C9 FDE5 PUSH IY
\ 04CB E1 POP HL
\ 04CC 7D LD A,L
\ 04CD B4 OR H
\ 04CE 2806 JR Z,?0083
\ 04D0 ?0082:
\ 04D0 C30906 JP LWRD ?0120
\ 04D3 C30C06 JP LWRD ?0121
\ 04D6 ?0083:
282 if(FMStatus.volume)
\ 04D6 3A8A00 LD A,(FMStatus+6)
\ 04D9 B7 OR A
\ 04DA CAC405 JP Z,?0162
\ 04DD ?0084:
283 fmSendCommand(MC_MUTE,releaseMUTE);
\ 04DD CD0E00 CALL LWRD ?0170
\ 04E0 ?0085:
284 fmSendCommand(MC_SETVOLUME,FMStatus.volume);
\ 04E0 C3C405 JP LWRD ?0162
\ 04E3 0600 LD B,0
\ 04E5 C3CA05 JP LWRD ?0166
\ 04E8 C3CC05 JP LWRD ?0160
\ 04EB 210000 LD HL,LWRD fmSendCommand
\ 04EE C3D105 JP LWRD ?0150
\ 04F1 C35102 JP LWRD ?0033
\ 04F4 ?0079:
285 }
286 else if(g_list.active==5) //选择日本频段
\ 04F4 3E05 LD A,5
\ 04F6 AD XOR L
\ 04F7 B4 OR H
\ 04F8 2022 JR NZ,?0088
\ 04FA ?0087:
287 {
288 if(FMStatus.mode==1)
\ 04FA 3A8900 LD A,(FMStatus+5)
\ 04FD 3D DEC A
\ 04FE C25102 JP NZ,?0033
\ 0501 ?0089:
289 {
290 memcpy(&FMStatusJP,&FMStatus,sizeof(FMStatus));
\ 0501 0E08 LD C,8
\ 0503 119400 LD DE,FMStatusJP
\ 0506 218400 LD HL,FMStatus
\ 0509 EDB0 LDIR
291 memcpy(&FMStatus,&FMStatusUS,sizeof(FMStatus));
\ 050B 0E08 LD C,8
\ 050D 118400 LD DE,FMStatus
\ 0510 218C00 LD HL,FMStatusUS
\ 0513 1827 JR ?0151
292 BandSwitch=TRUE;
\ 0515 DD36FD01 LD (IX-3),1
\ 0519 ?0090:
\ 0519 C35102 JP LWRD ?0033
\ 051C ?0088:
293 }
294 }
295 else if(g_list.active==6) //选择欧美频段
\ 051C 3E06 LD A,6
\ 051E AD XOR L
\ 051F B4 OR H
\ 0520 C25102 JP NZ,?0033
\ 0523 ?0092:
296 {
297 if(FMStatus.mode==0)
\ 0523 3A8900 LD A,(FMStatus+5)
\ 0526 B7 OR A
\ 0527 C25102 JP NZ,?0033
\ 052A ?0094:
298 {
299 memcpy(&FMStatusUS,&FMStatus,sizeof(FMStatus));
\ 052A 0E08 LD C,8
\ 052C 118C00 LD DE,FMStatusUS
\ 052F 218400 LD HL,FMStatus
\ 0532 EDB0 LDIR
300 memcpy(&FMStatus,&FMStatusJP,sizeof(FMStatus));
\ 0534 0E08 LD C,8
\ 0536 118400 LD DE,FMStatus
\ 0539 219400 LD HL,FMStatusJP
\ 053C ?0151:
\ 053C EDB0 LDIR
301 BandSwitch=TRUE;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?