📄 sub_function1.lst
字号:
\ 00C7 ?0009:
77
78 }
79 else if (PlayStatus == FFPlaySta)
\ 00C7 FE03 CP 3
\ 00C9 202F JR NZ,?0015
\ 00CB ?0014:
80 {
81 DisInFFEnd( DisMod );//到尾显示
\ 00CB 3E00 LD A,BYTE3 DisInFFEnd
\ 00CD 213C00 LD HL,LWRD DisInFFEnd
\ 00D0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00D3 ?0017:
82 while ( ap_get_message() != (AP_KEY_NEXT | AP_KEY_UP) );
\ 00D3 CD0000 CALL LWRD ap_get_message
\ 00D6 FE26 CP 38
\ 00D8 20F9 JR NZ,?0017
\ 00DA ?0018:
\ 00DA ?0016:
83 g_result = ToNextMusic(Play_play);
\ 00DA CD1F01 CALL LWRD ?0171
84 if(DisMod == 0)
\ 00DD 39 ADD HL,SP
\ 00DE AF XOR A
\ 00DF B6 OR (HL)
\ 00E0 200D JR NZ,?0020
\ 00E2 ?0019:
85 {
86 SetFullInterface();
\ 00E2 320000 LD (ui_auto_update),A
\ 00E5 210000 LD HL,UpDisplayFlag
\ 00E8 7E LD A,(HL)
\ 00E9 F6C1 OR 193
\ 00EB 77 LD (HL),A
\ 00EC 23 INC HL
\ 00ED 36FF LD (HL),255
\ 00EF ?0020:
87 }
88 if(g_result == RESULT_UI_STOP) return g_result;
\ 00EF 2A0000 LD HL,(g_result)
\ 00F2 3E66 LD A,102
\ 00F4 AD XOR L
\ 00F5 B4 OR H
\ 00F6 2020 JR NZ,?0027
\ 00F8 ?0021:
\ 00F8 1821 JR ?0028
89 }
\ 00FA ?0022:
90
91 else
\ 00FA ?0015:
92 {
93 g_result = ToNextMusic(Play_play);
\ 00FA CD1F01 CALL LWRD ?0171
94 if(DisMod == 0)
\ 00FD 39 ADD HL,SP
\ 00FE AF XOR A
\ 00FF B6 OR (HL)
\ 0100 200D JR NZ,?0025
\ 0102 ?0024:
95 {
96 SetFullInterface();
\ 0102 320000 LD (ui_auto_update),A
\ 0105 210000 LD HL,UpDisplayFlag
\ 0108 7E LD A,(HL)
\ 0109 F6C1 OR 193
\ 010B 77 LD (HL),A
\ 010C 23 INC HL
\ 010D 36FF LD (HL),255
\ 010F ?0025:
97 }
98 if(g_result == RESULT_UI_STOP) return g_result;
\ 010F 2A0000 LD HL,(g_result)
\ 0112 3E66 LD A,102
\ 0114 AD XOR L
\ 0115 B4 OR H
\ 0116 2803 JR Z,?0028
\ 0118 ?0026:
99 }
\ 0118 ?0027:
\ 0118 ?0023:
\ 0118 ?0013:
100 return NULL;
\ 0118 210000 LD HL,0
101 }
\ 011B ?0028:
\ 011B F1 POP AF
\ 011C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 011F ?0171:
\ 011F 1E01 LD E,1
\ 0121 3E00 LD A,BYTE3 ToNextMusic
\ 0123 210000 LD HL,LWRD ToNextMusic
\ 0126 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0129 220000 LD (g_result),HL
\ 012C 210000 LD HL,0
\ 012F C9 RET
\ 0130 ChangeMusic:
102 //================================================
103
104
105 /*
106 *******************************************************************************
107 * Description : 换曲时要做的选曲,初始化动作
108 * Arguments :
109 * Returns :真时表示可继续放,假时表示要停止放(播放状态)
110 * Notes :
111 *******************************************************************************
112 */
113 bool ChangeMusic( BYTE Direct, Music_sel_mod_t mod )
114 {
\ 0130 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0133 FEFF DEFW 65534
115 bool result;
116
117 //清 WATCH_DOG
118 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0135 DB4E IN A,(78)
\ 0137 CBDF SET 3,A
\ 0139 D34E OUT (78),A
119
120 //选文件
121 RePlayStatus = NormalPlay;
\ 013B AF XOR A
\ 013C 320000 LD (RePlayStatus),A
122 ClearTimePara();
\ 013F 3E00 LD A,BYTE3 ClearTimePara
\ 0141 210000 LD HL,LWRD ClearTimePara
\ 0144 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
123 g_TagInfoBuf[0] = 0x0;
\ 0147 AF XOR A
\ 0148 320000 LD (g_TagInfoBuf),A
124 BankSwitch((unsigned long)FSELInit >> 16);
\ 014B 1E00 LD E,BYTE3 fselInit
\ 014D EB EX DE,HL
\ 014E 5D LD E,L
\ 014F CD0000 CALL LWRD BankSwitch
125
126 if (mod == Play_key)
\ 0152 0D DEC C
\ 0153 0D DEC C
\ 0154 2009 JR NZ,?0030
\ 0156 ?0029:
127 {//play 按键的情况
128 switch (g_music_vars.repeat_mode)
\ 0156 3A0100 LD A,(g_music_vars+1)
\ 0159 FE01 CP 1
\ 015B 200C JR NZ,?0036
\ 015D ?0032:
129 {
130 case FSEL_ALL_REPEATONE:
131 FSELSetMode( FSEL_ALL_REPEATALL );//PLAY 时按键
\ 015D 1806 JR ?0146
132 break;
\ 015F ?0033:
133
134
135 default:
136 FSELSetMode(g_music_vars.repeat_mode);//
137 break;
\ 015F ?0031:
\ 015F ?0030:
138 }
139 }
140 else if (mod == Stop_key)
\ 015F AF XOR A
\ 0160 DDB604 OR (IX+4)
\ 0163 2004 JR NZ,?0036
\ 0165 ?0035:
141 {//
142 FSELSetMode(FSEL_ALL_REPEATALL);//STOP时按键
\ 0165 ?0146:
\ 0165 1E04 LD E,4
\ 0167 1804 JR ?0142
143 }
144 else
\ 0169 ?0036:
145 {//正常播放的情况
146 FSELSetMode(g_music_vars.repeat_mode);
\ 0169 ED5B0100 LD DE,(g_music_vars+1)
\ 016D ?0142:
\ 016D CD0902 CALL LWRD ?0173
\ 0170 ?0037:
\ 0170 ?0034:
147 }
148
149 switch (Direct)
\ 0170 DD5E02 LD E,(IX+2)
\ 0173 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 0176 00 DEFB 0
\ 0177 0500 DEFW 5
\ 0179 AD01 DEFW ?0044
\ 017B B101 DEFW ?0038
\ 017D B101 DEFW ?0038
\ 017F 8501 DEFW ?0041
\ 0181 8B01 DEFW ?0042
\ 0183 9901 DEFW ?0043
\ 0185 ?0039:
150 {
151 case Music_Reset_Head:
152 break;
\ 0185 ?0040:
153
154 case Music_Reset_End:
155 break;
\ 0185 ?0041:
156
157 case Music_Cur:
158 result = TRUE;
\ 0185 DD36FE01 LD (IX-2),1
159 break;
\ 0189 1826 JR ?0038
\ 018B ?0042:
160
161 case Music_Next:
162 ifSelBuffToltalTimeFlag = FALSE;
\ 018B AF XOR A
\ 018C 320000 LD (ifSelBuffToltalTimeFlag),A
163 result = FSELGetNext(g_music_vars.location.filename);
\ 018F 112100 LD DE,g_music_vars+33
\ 0192 3E00 LD A,BYTE3 fselGetNextFile
\ 0194 210000 LD HL,LWRD fselGetNextFile
\ 0197 180C JR ?0143
164 break;
\ 0199 ?0043:
165
166 case Music_Prev:
167 ifSelBuffToltalTimeFlag = FALSE;
\ 0199 AF XOR A
\ 019A 320000 LD (ifSelBuffToltalTimeFlag),A
168 result = FSELGetPrev(g_music_vars.location.filename);
\ 019D 112100 LD DE,g_music_vars+33
\ 01A0 3E00 LD A,BYTE3 fselGetPrevFile
\ 01A2 210000 LD HL,LWRD fselGetPrevFile
\ 01A5 ?0143:
\ 01A5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01A8 DD75FE LD (IX-2),L
169 break;
\ 01AB 1804 JR ?0038
\ 01AD ?0044:
170
171 default:
172 return FALSE;
\ 01AD 2E00 LD L,0
173 }
\ 01AF 1851 JR ?0047
\ 01B1 ?0038:
174
175 if (!result)
\ 01B1 AF XOR A
\ 01B2 DDB6FE OR (IX-2)
\ 01B5 2010 JR NZ,?0046
\ 01B7 ?0045:
176 {
177 fselSetLocation(& g_music_vars.location);
\ 01B7 110700 LD DE,g_music_vars+7
\ 01BA 3E00 LD A,BYTE3 fselSetLocation
\ 01BC 210000 LD HL,LWRD fselSetLocation
\ 01BF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
178 return result;
\ 01C2 DD6EFE LD L,(IX-2)
179 }
\ 01C5 183B JR ?0047
\ 01C7 ?0046:
180 //取当前歌曲数状态
181 g_musicamount = FSELGetTotal();
\ 01C7 3E00 LD A,BYTE3 fselGetTotal
\ 01C9 210000 LD HL,LWRD fselGetTotal
\ 01CC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01CF 220000 LD (g_musicamount),HL
182 g_musicsequence = FSELGetNo();
\ 01D2 3E00 LD A,BYTE3 fselGetNo
\ 01D4 210000 LD HL,LWRD fselGetNo
\ 01D7 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01DA 220000 LD (g_musicsequence),HL
183 FSELSetMode(g_music_vars.repeat_mode);
\ 01DD CD0502 CALL LWRD ?0174
184
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -