main.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,352 行 · 第 1/5 页
LST
1,352 行
\ 053E DD36FD01 LD (IX-3),1
\ 0542 ?0095:
\ 0542 ?0093:
\ 0542 ?0091:
\ 0542 ?0086:
\ 0542 ?0077:
\ 0542 ?0074:
\ 0542 ?0067:
302 }
303 }
304
305 break;
\ 0542 C35102 JP LWRD ?0033
\ 0545 ?0096:
306 case AP_KEY_PLAY|AP_KEY_UP: //跳到电台表的下一个
307 fmSendCommand(MC_STEP,UP);
\ 0545 0E01 LD C,1
\ 0547 1E07 LD E,7
\ 0549 ?0141:
\ 0549 3E00 LD A,BYTE3 fmSendCommand
\ 054B ?0135:
\ 054B CD1200 CALL LWRD ?0171
308 fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
\ 054E ?0154:
\ 054E 018400 LD BC,FMStatus
\ 0551 1E83 LD E,131
\ 0553 ?0143:
\ 0553 3E00 LD A,BYTE3 fmSendCommand
\ 0555 210000 LD HL,LWRD fmSendCommand
\ 0558 ?0159:
\ 0558 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
309 Updateflag=1;
\ 055B 3E01 LD A,1
\ 055D ?0156:
\ 055D 323300 LD (Updateflag),A
310 need_draw=TRUE;
\ 0560 C3E405 JP LWRD ?0136
311 break;
\ 0563 C35102 JP LWRD ?0033
\ 0566 ?0097:
312 case AP_KEY_VOLADD:
313 case AP_KEY_VOLADD | AP_KEY_HOLD:
314 if (FMStatus.volume ++ <31)
\ 0566 218A00 LD HL,FMStatus+6
\ 0569 7E LD A,(HL)
\ 056A 34 INC (HL)
\ 056B FE1F CP 31
\ 056D 3026 JR NC,?0099
\ 056F ?0098:
315 {
316 if(volmuteflag) //处理fm声音在零级还有输出的情况 zxs change
\ 056F 3A0000 LD A,(volmuteflag)
\ 0572 B7 OR A
\ 0573 2843 JR Z,?0107
\ 0575 ?0100:
317 {
318 fmSendCommand(MC_MUTE,releaseMUTE);
\ 0575 48 LD C,B
\ 0576 CD0E00 CALL LWRD ?0170
319 volmuteflag=0;
\ 0579 AF XOR A
\ 057A 1839 JR ?0167
\ 057C ?0101:
320 }
321
322 ui_show_volfm(FMStatus.volume); //显示音量
\ 057C 183A JR ?0107
\ 057E 3E00 LD A,BYTE3 ui_show_volfm
\ 0580 183C JR ?0168
\ 0582 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
323 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
\ 0585 183D JR ?0162
\ 0587 0600 LD B,0
\ 0589 183F JR ?0166
\ 058B 183F JR ?0160
\ 058D 210000 LD HL,LWRD fmSendCommand
\ 0590 183F JR ?0150
324 }
325 else
\ 0592 C35102 JP LWRD ?0033
\ 0595 ?0099:
326 {
327 FMStatus.volume = 31;
\ 0595 3E1F LD A,31
\ 0597 328A00 LD (FMStatus+6),A
\ 059A ?0102:
328 }
329 break;
\ 059A C35102 JP LWRD ?0033
\ 059D ?0103:
330 case AP_KEY_VOLSUB:
331 case AP_KEY_VOLSUB | AP_KEY_HOLD:
332
333 if (FMStatus.volume>0)
\ 059D 3A8A00 LD A,(FMStatus+6)
\ 05A0 B7 OR A
\ 05A1 CA5102 JP Z,?0033
\ 05A4 ?0104:
334 {
335
336 FMStatus.volume--;
\ 05A4 218A00 LD HL,FMStatus+6
\ 05A7 35 DEC (HL)
337 if((FMStatus.volume==0))
\ 05A8 3A8A00 LD A,(FMStatus+6)
\ 05AB B7 OR A
\ 05AC 200A JR NZ,?0107
\ 05AE ?0106:
338 {
339 fmSendCommand(MC_MUTE,SetMUTE); //处理fm声音在零级还有输出的情况 zxs change
\ 05AE 0E01 LD C,1
\ 05B0 CD0E00 CALL LWRD ?0170
340 volmuteflag=1;
\ 05B3 3E01 LD A,1
\ 05B5 ?0167:
\ 05B5 320000 LD (volmuteflag),A
\ 05B8 ?0107:
341 }
342
343 ui_show_volfm(FMStatus.volume); //显示音量
\ 05B8 ED5B8A00 LD DE,(FMStatus+6)
\ 05BC 3E00 LD A,BYTE3 ui_show_volfm
\ 05BE ?0168:
\ 05BE 210000 LD HL,LWRD ui_show_volfm
\ 05C1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
344 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
\ 05C4 ?0162:
\ 05C4 ED4B8A00 LD BC,(FMStatus+6)
\ 05C8 0600 LD B,0
\ 05CA ?0166:
\ 05CA 1E40 LD E,64
\ 05CC ?0160:
\ 05CC 3E00 LD A,BYTE3 fmSendCommand
\ 05CE 210000 LD HL,LWRD fmSendCommand
\ 05D1 ?0150:
\ 05D1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
345 }
346 else
\ 05D4 C35102 JP LWRD ?0033
\ 05D7 ?0105:
347 {
348 FMStatus.volume = 0;
\ 05D7 ?0108:
349
350 }
351
352 break;
\ 05D7 C35102 JP LWRD ?0033
\ 05DA ?0109:
353 // case AP_KEY_AB | AP_KEY_UP: //进入录音
354 // return RESULT_FMREC_AB;
355 default: //热键处理
356 key=ap_handle_hotkey(key);
\ 05DA 59 LD E,C
\ 05DB CD0000 CALL LWRD ap_handle_hotkey
\ 05DE 4F LD C,A
357 if(key == RESULT_REDRAW)need_draw=TRUE;
\ 05DF 3E32 LD A,50
\ 05E1 A9 XOR C
\ 05E2 2007 JR NZ,?0111
\ 05E4 ?0110:
\ 05E4 ?0136:
\ 05E4 DD36FC01 LD (IX-4),1
\ 05E8 C35102 JP LWRD ?0033
\ 05EB ?0111:
358 else if(key == RESULT_RECORD) return RESULT_FMREC_START; //for FM record (press REC) by ccm
\ 05EB 3E09 LD A,9
\ 05ED A9 XOR C
\ 05EE 2005 JR NZ,?0114
\ 05F0 ?0113:
\ 05F0 210D00 LD HL,13
\ 05F3 1817 JR ?0121
\ 05F5 ?0114:
359 else if((key!=0)||(result!=0))
\ 05F5 79 LD A,C
\ 05F6 B7 OR A
\ 05F7 2008 JR NZ,?0117
\ 05F9 FDE5 PUSH IY
\ 05FB E1 POP HL
\ 05FC 7D LD A,L
\ 05FD B4 OR H
\ 05FE CA5102 JP Z,?0033
\ 0601 ?0117:
\ 0601 ?0118:
\ 0601 ?0115:
360 {
361 if(key!=0)return key;
\ 0601 79 LD A,C
\ 0602 B7 OR A
\ 0603 2804 JR Z,?0120
\ 0605 ?0119:
\ 0605 69 LD L,C
\ 0606 60 LD H,B
362 else
\ 0607 1803 JR ?0121
\ 0609 ?0120:
363 return result;
\ 0609 FDE5 PUSH IY
\ 060B E1 POP HL
364 }
\ 060C ?0121:
\ 060C DDF9 LD SP,IX
\ 060E DDE1 POP IX
\ 0610 FDE1 POP IY
\ 0612 D1 POP DE
\ 0613 C1 POP BC
\ 0614 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0617 ?0116:
\ 0617 ?0112:
\ 0617 ?0051:
365 }
366 }
367 }
\ 0617 C35102 JP LWRD ?0033
368
369
370
371
372
373
\ 0000 RSEG CSTR
\ 0000 ?0016:
\ 0000 75693330 DEFB 'ui30.res'
\ 0004 2E726573
\ 0008 00 DEFB 0
\ 0009 ?0046:
\ 0009 2020 DEFB ' '
\ 000B 00 DEFB 0
\ 0000 RSEG CONST
\ 0000 string:
\ 0000 5A01 DEFW 346
\ 0002 5B01 DEFW 347
\ 0004 5C01 DEFW 348
\ 0006 5D01 DEFW 349
\ 0008 CC01 DEFW 460
\ 000A 5E01 DEFW 350
\ 000C 5F01 DEFW 351
\ 000E 6001 DEFW 352
\ 0010 ?0025:
\ 0010 464D DEFB 'FM'
\ 0012 00 DEFB 0
\ 0013 00 DEFB 0
\ 0000 RSEG UDATA0
\ 0000 TimeCount:
\ 0002 DEFS 2
\ 0002 radio_param:
\ 0006 DEFS 4
\ 0006 clrregion:
\ 000A DEFS 4
\ 000A g_list:
\ 0013 DEFS 9
\ 0013 g_comval:
\ 0033 DEFS 32
\ 0033 Updateflag:
\ 0034 DEFS 1
\ 0034 FMStationTab:
\ 0084 DEFS 80
\ 0084 FMStatus:
\ 008C DEFS 8
\ 008C FMStatusUS:
\ 0094 DEFS 8
\ 0094 FMStatusJP:
\ 009C DEFS 8
\ 009C fmdataflag:
\ 009F DEFS 3
\ 009F Freqtab:
\ 00A9 DEFS 10
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?