tryplaying.lst
来自「MP3 整个 SDK」· LST 代码 · 共 517 行 · 第 1/2 页
LST
517 行
88 {
89 ResShowPic(SLIDPTR,25+k,53); //显示箭头
\ 00F5 C619 ADD A,25
\ 00F7 CD0002 CALL LWRD ?0052
\ 00FA F1 POP AF
90 ResShowPic(FMBARBG,0,47); //显示US频率条
\ 00FB 0E2F LD C,47
\ 00FD C5 PUSH BC
\ 00FE 0E00 LD C,0
\ 0100 113300 LD DE,51
\ 0103 180E JR ?0045
91 }
92 else
\ 0105 ?0018:
93 {
94 ResShowPic(SLIDPTR,40+k,53); //显示箭头
\ 0105 C628 ADD A,40
\ 0107 CD0002 CALL LWRD ?0052
\ 010A F1 POP AF
95 ResShowPic(FMJPBAR,0,47); //显示JP频率条
\ 010B 0E2F LD C,47
\ 010D C5 PUSH BC
\ 010E 0E00 LD C,0
\ 0110 113700 LD DE,55
\ 0113 ?0045:
\ 0113 CD0302 CALL LWRD ?0053
\ 0116 F1 POP AF
\ 0117 ?0019:
96 }
97 flash_point = 0;
\ 0117 AF XOR A
\ 0118 DD77FA LD (IX-6),A
\ 011B DD77FB LD (IX-5),A
98 }
99 else // 清除箭头
\ 011E C36E00 JP LWRD ?0006
\ 0121 ?0016:
100 {
101
102 if(FMStatus.mode==0)
\ 0121 B7 OR A
\ 0122 0E2F LD C,47
\ 0124 C5 PUSH BC
\ 0125 2005 JR NZ,?0022
\ 0127 ?0021:
103 {
104 ResShowPic(FMBARBG,0,47);
\ 0127 4F LD C,A
\ 0128 1E33 LD E,51
\ 012A 1803 JR ?0046
105 }
106 else
\ 012C ?0022:
107 {
108 ResShowPic(FMJPBAR,0,47);
\ 012C 4A LD C,D
\ 012D 1E37 LD E,55
\ 012F ?0046:
\ 012F CD0302 CALL LWRD ?0053
\ 0132 F1 POP AF
\ 0133 ?0023:
109 }
110
111 flash_point = 1;
\ 0133 DD36FA01 LD (IX-6),1
\ 0137 DD36FB00 LD (IX-5),0
\ 013B ?0020:
112
113 }
114 // UpdateScreen(NULL);
115 break;
\ 013B C36E00 JP LWRD ?0006
\ 013E ?0024:
116 case AP_KEY_VOLADD:
117 case AP_KEY_VOLADD | AP_KEY_HOLD:
118 if (FMStatus.volume ++ <31)
\ 013E 210600 LD HL,FMStatus+6
\ 0141 7E LD A,(HL)
\ 0142 34 INC (HL)
\ 0143 FE1F CP 31
\ 0145 380D JR C,?0048
\ 0147 ?0025:
119 {
120 ui_show_volfm(FMStatus.volume); //显示音量
121 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
122 }
123 else
\ 0147 ?0026:
124 {
125 FMStatus.volume = 31;
\ 0147 3E1F LD A,31
\ 0149 1819 JR ?0047
\ 014B ?0027:
126 }
127 break;
\ 014B ?0028:
128
129 // 音量调节. zxs==
130 case AP_KEY_VOLSUB:
131 case AP_KEY_VOLSUB | AP_KEY_HOLD:
132 if (FMStatus.volume-- > 0)
\ 014B 210600 LD HL,FMStatus+6
\ 014E 46 LD B,(HL)
\ 014F 35 DEC (HL)
\ 0150 04 INC B
\ 0151 05 DEC B
\ 0152 280F JR Z,?0030
\ 0154 ?0029:
133 {
134 ui_show_volfm(FMStatus.volume); //显示音量
\ 0154 ?0048:
\ 0154 ED5B0600 LD DE,(FMStatus+6)
\ 0158 3E00 LD A,BYTE3 ui_show_volfm
\ 015A 210000 LD HL,LWRD ui_show_volfm
\ 015D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
135 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
\ 0160 C36500 JP LWRD ?0049
136 }
137 else
\ 0163 ?0030:
138 {
139 FMStatus.volume = 0;
\ 0163 AF XOR A
\ 0164 ?0047:
\ 0164 320600 LD (FMStatus+6),A
\ 0167 ?0031:
140 }
141 break;
\ 0167 C36E00 JP LWRD ?0006
\ 016A ?0032:
142
143
144 default: //热键处理
145 key=ap_handle_hotkey(key);
\ 016A FDE5 PUSH IY
\ 016C E1 POP HL
\ 016D 5D LD E,L
\ 016E CD0000 CALL LWRD ap_handle_hotkey
\ 0171 4F LD C,A
\ 0172 C5 PUSH BC
\ 0173 FDE1 POP IY
146 if(key!=0)
\ 0175 79 LD A,C
\ 0176 B7 OR A
\ 0177 CA6E00 JP Z,?0006
\ 017A ?0033:
147 {
148 loop = FALSE;
\ 017A DD70FE LD (IX-2),B
\ 017D ?0034:
\ 017D ?0008:
\ 017D C36E00 JP LWRD ?0006
\ 0180 ?0005:
149 }
150 }
151 }
152 //fmSendCommand(MC_MUTE,SetMUTE);
153 fmSendCommand(MC_GETFREQ, (int)&k); // 保存电台
\ 0180 6F LD L,A
\ 0181 67 LD H,A
\ 0182 39 ADD HL,SP
\ 0183 4D LD C,L
\ 0184 44 LD B,H
\ 0185 1E11 LD E,17
\ 0187 CD0E00 CALL LWRD ?0051
154 FMAutoTab[AutoTabNum] = k;
\ 018A 2A0000 LD HL,(AutoTabNum)
\ 018D 2600 LD H,0
\ 018F 29 ADD HL,HL
\ 0190 010000 LD BC,FMAutoTab
\ 0193 09 ADD HL,BC
\ 0194 DD4EF6 LD C,(IX-10)
\ 0197 71 LD (HL),C
\ 0198 DD46F7 LD B,(IX-9)
\ 019B 23 INC HL
\ 019C 70 LD (HL),B
155 AutoTabNum++;
\ 019D 210000 LD HL,AutoTabNum
\ 01A0 34 INC (HL)
156 for(i = AutoTabNum;i < 20;i++)
\ 01A1 ED4B0000 LD BC,(AutoTabNum)
\ 01A5 0600 LD B,0
\ 01A7 DD71F8 LD (IX-8),C
\ 01AA DD70F9 LD (IX-7),B
\ 01AD ?0036:
\ 01AD 011480 LD BC,32788
\ 01B0 DD6EF8 LD L,(IX-8)
\ 01B3 DD66F9 LD H,(IX-7)
\ 01B6 78 LD A,B
\ 01B7 AC XOR H
\ 01B8 67 LD H,A
\ 01B9 ED42 SBC HL,BC
\ 01BB 3035 JR NC,?0035
\ 01BD ?0037:
157 {
158 if(radio_param.param1[i] == k) // 删除重复的电台.
\ 01BD DD6EF8 LD L,(IX-8)
\ 01C0 DD66F9 LD H,(IX-7)
\ 01C3 29 ADD HL,HL
\ 01C4 ED4B0000 LD BC,(radio_param)
\ 01C8 09 ADD HL,BC
\ 01C9 46 LD B,(HL)
\ 01CA 23 INC HL
\ 01CB 66 LD H,(HL)
\ 01CC 68 LD L,B
\ 01CD DD4EF6 LD C,(IX-10)
\ 01D0 DD46F7 LD B,(IX-9)
\ 01D3 A7 AND A
\ 01D4 ED42 SBC HL,BC
\ 01D6 2010 JR NZ,?0040
\ 01D8 ?0039:
159 {
160 radio_param.param1[i] =0;
\ 01D8 DD6EF8 LD L,(IX-8)
\ 01DB DD66F9 LD H,(IX-7)
\ 01DE 29 ADD HL,HL
\ 01DF ED4B0000 LD BC,(radio_param)
\ 01E3 09 ADD HL,BC
\ 01E4 AF XOR A
\ 01E5 77 LD (HL),A
\ 01E6 23 INC HL
\ 01E7 77 LD (HL),A
\ 01E8 ?0040:
\ 01E8 DD34F8 INC (IX-8)
\ 01EB 20C0 JR NZ,?0036
\ 01ED DD34F9 INC (IX-7)
\ 01F0 18BB JR ?0036
\ 01F2 ?0035:
161 // FMStatus.station_count--;
162 }
163 }
164 return key;
\ 01F2 FDE5 PUSH IY
\ 01F4 E1 POP HL
165 }
\ 01F5 ?0041:
\ 01F5 DDF9 LD SP,IX
\ 01F7 DDE1 POP IX
\ 01F9 FDE1 POP IY
\ 01FB D1 POP DE
\ 01FC C1 POP BC
\ 01FD C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0200 ?0052:
\ 0200 4F LD C,A
\ 0201 1EDC LD E,220
\ 0203 ?0053:
\ 0203 3E00 LD A,BYTE3 ResShowPic
\ 0205 210000 LD HL,LWRD ResShowPic
\ 0208 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 020B END
Errors: none
Warnings: none
Code size: 523
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?