📄 sub_playstatuskey.lst
字号:
94 break;
\ 009A C38A02 JP LWRD ?0002
\ 009D ?0017:
95
96 case AP_KEY_LOOP:
97 if (RePlayStatus == NormalPlay)
\ 009D 3A0000 LD A,(RePlayStatus)
\ 00A0 B7 OR A
\ 00A1 2035 JR NZ,?0019
\ 00A3 ?0018:
98 {
99 g_result = ui_loop_menu();
\ 00A3 3E00 LD A,BYTE3 ui_loop_menu
\ 00A5 210000 LD HL,LWRD ui_loop_menu
\ 00A8 CDC002 CALL LWRD ?0225
100
101 if (g_result == RESULT_RECORD )//不响应AB键
\ 00AB 2010 JR NZ,?0021
\ 00AD ?0020:
102 {
103 SetFullInterface();
\ 00AD ?0163:
\ 00AD AF XOR A
\ 00AE 320000 LD (ui_auto_update),A
\ 00B1 210000 LD HL,UpDisplayFlag
\ 00B4 7E LD A,(HL)
\ 00B5 F6C1 OR 193
\ 00B7 77 LD (HL),A
\ 00B8 23 INC HL
\ 00B9 36FF LD (HL),255
104 return play_key_next(AP_KEY_AB | AP_KEY_UP);
\ 00BB 187E JR ?0164
105 }
\ 00BD ?0021:
106 else
107 {
108 if (g_result != 0)
\ 00BD 7D LD A,L
\ 00BE B4 OR H
\ 00BF 2802 JR Z,?0023
\ 00C1 ?0022:
109 {
110 return g_result;
\ 00C1 ?0165:
\ 00C1 183C JR ?0030
111 }
\ 00C3 ?0023:
112 }
113
114 SetFullInterface();
\ 00C3 320000 LD (ui_auto_update),A
\ 00C6 210000 LD HL,UpDisplayFlag
\ 00C9 7E LD A,(HL)
\ 00CA F6C1 OR 193
\ 00CC 77 LD (HL),A
\ 00CD 23 INC HL
\ 00CE 36FF LD (HL),255
115 return_to_play=1;
\ 00D0 3E01 LD A,1
\ 00D2 320000 LD (return_to_play),A
116 need_draw = TRUE;
\ 00D5 320000 LD (need_draw),A
\ 00D8 ?0019:
117 }
118 break;
\ 00D8 C38A02 JP LWRD ?0002
\ 00DB ?0024:
119
120 case AP_KEY_PREV | AP_KEY_UP:
121 ui_run_realtime=FALSE;
\ 00DB AF XOR A
\ 00DC 320000 LD (ui_run_realtime),A
122 g_result = play_key_prev(key);
\ 00DF 57 LD D,A
\ 00E0 3E00 LD A,BYTE3 play_key_prev
\ 00E2 21F103 LD HL,LWRD play_key_prev
\ 00E5 CDD002 CALL LWRD ?0226
\ 00E8 ?0026:
123 while(ap_get_message()!=NULL); //clear rtc message.
\ 00E8 CD0000 CALL LWRD ap_get_message
\ 00EB B7 OR A
\ 00EC 2811 JR Z,?0030
\ 00EE ?0027:
\ 00EE 18F8 JR ?0026
\ 00F0 ?0025:
124 return g_result;
125
126
127 case AP_KEY_NEXT | AP_KEY_UP:
\ 00F0 ?0028:
128 ui_run_realtime=FALSE;
\ 00F0 AF XOR A
\ 00F1 320000 LD (ui_run_realtime),A
\ 00F4 ?0029:
129 case AP_KEY_AB | AP_KEY_UP: //定AB
130 g_result = play_key_next(key);
\ 00F4 1600 LD D,0
\ 00F6 CDCB02 CALL LWRD ?0227
\ 00F9 ?0031:
131 while(ap_get_message()!=NULL); //clear rtc message.
\ 00F9 CD0000 CALL LWRD ap_get_message
\ 00FC B7 OR A
\ 00FD 20FA JR NZ,?0031
\ 00FF ?0032:
\ 00FF ?0030:
132 return g_result;
\ 00FF C34002 JP LWRD ?0174
133
134 case AP_KEY_MODE | AP_KEY_UP: //短按 MODE +
\ 0102 ?0033:
135 if (RePlayStatus == NormalPlay)
\ 0102 3A0000 LD A,(RePlayStatus)
\ 0105 B7 OR A
\ 0106 C29601 JP NZ,?0035
\ 0109 ?0034:
136 {
137 BYTE Reg4eBak=input8(0x4e);
\ 0109 DB4E IN A,(78)
\ 010B DD77FE LD (IX-2),A
138 output8(0x4e,0x22); //zxs add
\ 010E 3E22 LD A,34
\ 0110 D34E OUT (78),A
139 g_result = ui_play_menu(); //播放菜单
\ 0112 3E00 LD A,BYTE3 ui_play_menu
\ 0114 210000 LD HL,LWRD ui_play_menu
\ 0117 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 011A 220000 LD (g_result),HL
140 output8(0x4e,Reg4eBak); //zxs add
\ 011D DD7EFE LD A,(IX-2)
\ 0120 D34E OUT (78),A
141 if (g_result == RESULT_RECORD )//不响应AB键
\ 0122 3E09 LD A,9
\ 0124 AD XOR L
\ 0125 B4 OR H
\ 0126 2021 JR NZ,?0037
\ 0128 ?0036:
142 {
143
144 SetFullInterface();
\ 0128 320000 LD (ui_auto_update),A
\ 012B 210000 LD HL,UpDisplayFlag
\ 012E 7E LD A,(HL)
\ 012F F6C1 OR 193
\ 0131 77 LD (HL),A
\ 0132 23 INC HL
\ 0133 36FF LD (HL),255
145 UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
\ 0135 210000 LD HL,UpDisplayFlag
\ 0138 23 INC HL
\ 0139 CBAE RES 5,(HL)
146 return play_key_next(AP_KEY_AB | AP_KEY_UP);
\ 013B ?0164:
\ 013B 113100 LD DE,49
\ 013E 3E00 LD A,BYTE3 play_key_next
\ 0140 21D702 LD HL,LWRD play_key_next
\ 0143 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
147 }
\ 0146 C38D02 JP LWRD ?0072
\ 0149 ?0037:
148 else
149 {
150 /////////////////////////////////////////////////////////////////////////////////////
151 g_result_bak=g_result;
\ 0149 FD2A0000 LD IY,(g_result)
152 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 014D 210400 LD HL,4
\ 0150 39 ADD HL,SP
\ 0151 4D LD C,L
\ 0152 44 LD B,H
\ 0153 1E83 LD E,131
\ 0155 CDB802 CALL LWRD ?0221
153 if (status_buf.status == PLAYING_REACH_END)
\ 0158 DD7EF6 LD A,(IX-10)
\ 015B FE06 CP 6
\ 015D 201B JR NZ,?0041
\ 015F ?0038:
154 {
155
156 g_result=DealMusicFileEnd(0);
\ 015F 1E00 LD E,0
\ 0161 3E00 LD A,BYTE3 DealMusicFileEnd
\ 0163 210000 LD HL,LWRD DealMusicFileEnd
\ 0166 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0169 220000 LD (g_result),HL
157 if ( g_result != NULL )
\ 016C 7D LD A,L
\ 016D B4 OR H
\ 016E 280A JR Z,?0041
\ 0170 ?0040:
158 {
159 if(g_result_bak) //g_result_bak !=0,返回其消息
\ 0170 FDE5 PUSH IY
\ 0172 E1 POP HL
\ 0173 7D LD A,L
\ 0174 B4 OR H
\ 0175 280D JR Z,?0170
\ 0177 ?0042:
160 return g_result_bak;
161 else
\ 0177 C38D02 JP LWRD ?0072
\ 017A ?0043:
162 return g_result;
163 }
\ 017A ?0041:
\ 017A ?0039:
164 }
165 g_result=g_result_bak;
\ 017A FDE5 PUSH IY
\ 017C E1 POP HL
\ 017D 220000 LD (g_result),HL
166 //////////////////////////////////////////////////////////////////////////////////////解决DRM在菜单中长按mode重启问题
167 if (g_result != 0)
\ 0180 7D LD A,L
\ 0181 B4 OR H
\ 0182 2803 JR Z,?0045
\ 0184 ?0044:
168 {
169 return g_result;
\ 0184 ?0170:
\ 0184 C34002 JP LWRD ?0174
170 }
\ 0187 ?0045:
171 }
172 SetFullInterface();
\ 0187 320000 LD (ui_auto_update),A
\ 018A 210000 LD HL,UpDisplayFlag
\ 018D 7E LD A,(HL)
\ 018E F6C1 OR 193
\ 0190 77 LD (HL),A
\ 0191 23 INC HL
\ 0192 36FF LD (HL),255
173
174 }
175 else
\ 0194 1810 JR ?0046
\ 0196 ?0035:
176 {
177 musicpSendCommand(MC_SETA_B, ClrABPoint); //clear SET_A_B
\ 0196 CDB302 CALL LWRD ?0222
178 RePlayStatus = NormalPlay;
\ 0199 AF XOR A
\ 019A 320000 LD (RePlayStatus),A
179 //main_ResShowPic(BBCK2,0,0);
180 UpDisplayFlag = UpDisplayFlag | up_musicbitrate;
\ 019D 210000 LD HL,UpDisplayFlag
\ 01A0 23 INC HL
\ 01A1 CBEE SET 5,(HL)
181 g_FCexitflag = FALSE;
\ 01A3 320000 LD (g_FCexitflag),A
\ 01A6 ?0046:
182 }
183 return_to_play=1;
\ 01A6 3E01 LD A,1
\ 01A8 320000 LD (return_to_play),A
184 need_draw = TRUE;
\ 01AB C33702 JP LWRD ?0175
185 break;
\ 01AE ?0047:
186
187 case AP_KEY_MODE | AP_KEY_LONG://长按MODE 进入歌词显示界面
188
189 #ifdef OPT_Sup_LRC_fun//支持歌词显示功能
190
191 if (!g_lyricflag)
\ 01AE 3A0000 LD A,(g_lyricflag)
\ 01B1 B7 OR A
\ 01B2 2806 JR Z,?0172
\ 01B4 ?0048:
192 {
193 return RESULT_MAIN; //没歌词就不进入
194 }
\ 01B4 ?0049:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -