sub_function2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,392 行 · 第 1/5 页
LST
1,392 行
171 }
\ 01BD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 01C0 ?0149:
\ 01C0 110000 LD DE,g_TagInfoBuf
\ 01C3 ?0148:
\ 01C3 3E00 LD A,BYTE3 unitochar
\ 01C5 210000 LD HL,LWRD unitochar
\ 01C8 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 01CB read_var:
172 void read_var( void )
173 {
\ 01CB CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01CE C4FF DEFW 65476
174 int result;
175 kval_t kval;
176 browser_vars_t temp_browser_vars;
177
178 //读出是否刚上电,如是,则要重调时间。
179 VMRead(& kval, VM_KERNEL, sizeof(kval_t));
\ 01D0 210B00 LD HL,11
\ 01D3 E5 PUSH HL
\ 01D4 4C LD C,H
\ 01D5 44 LD B,H
\ 01D6 2E04 LD L,4
\ 01D8 39 ADD HL,SP
\ 01D9 EB EX DE,HL
\ 01DA CD0000 CALL LWRD VMRead
\ 01DD E1 POP HL
180 g_PowerOffFlag = kval.rtcresetflag;
\ 01DE DD7ED0 LD A,(IX-48)
\ 01E1 320000 LD (g_PowerOffFlag),A
181
182 //read comval
183 result = VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
\ 01E4 212000 LD HL,32
\ 01E7 E5 PUSH HL
\ 01E8 010002 LD BC,512
\ 01EB 110000 LD DE,g_comval
\ 01EE CD0000 CALL LWRD VMRead
\ 01F1 E1 POP HL
184 ASSERT(result);
185
186 //check if valid
187 if (g_comval.magic != MAGIC_COMVAL)
\ 01F2 21ADDE LD HL,57005
\ 01F5 ED4B0000 LD BC,(g_comval)
\ 01F9 A7 AND A
\ 01FA ED42 SBC HL,BC
\ 01FC 2806 JR Z,?0058
\ 01FE ?0057:
188 {
189 DUMP_STRING("comval init-ed!");
190 GetDefaultComval(&g_comval);
\ 01FE 110000 LD DE,g_comval
\ 0201 CD0000 CALL LWRD GetDefaultComval
\ 0204 ?0058:
191 }
192
193 ap_message_init(& g_comval);
\ 0204 110000 LD DE,g_comval
\ 0207 3E00 LD A,BYTE3 ap_message_init
\ 0209 210000 LD HL,LWRD ap_message_init
\ 020C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
194
195 //read ap vars
196 result = VMRead(& g_music_vars, VM_AP_MUSIC, sizeof(g_music_vars));
\ 020F 215F00 LD HL,95
\ 0212 E5 PUSH HL
\ 0213 010010 LD BC,4096
\ 0216 110000 LD DE,g_music_vars
\ 0219 CD0000 CALL LWRD VMRead
\ 021C E1 POP HL
197 ASSERT(result);
198
199 //check if valid
200 if (g_music_vars.magic != MAGIC_MUSIC)
\ 021D 2A5D00 LD HL,(g_music_vars+93)
\ 0220 01EFBE LD BC,48879
\ 0223 A7 AND A
\ 0224 ED42 SBC HL,BC
\ 0226 285C JR Z,?0060
\ 0228 ?0059:
201 {
202 BYTE i;
203
204 DUMP_STRING("vars init-ed!");
205 g_music_vars.magic = MAGIC_MUSIC;
\ 0228 ED435D00 LD (g_music_vars+93),BC
206 g_music_vars.volume = 24;
\ 022C 3E18 LD A,24
\ 022E 320000 LD (g_music_vars),A
207 output8(0x87, 24|0xe0);
\ 0231 3EF8 LD A,248
\ 0233 D387 OUT (135),A
208 g_music_vars.eq_type = 0;
\ 0235 AF XOR A
\ 0236 320200 LD (g_music_vars+2),A
209 g_music_vars.replaytimes = 5;
\ 0239 3E05 LD A,5
\ 023B 320400 LD (g_music_vars+4),A
210 g_music_vars.replaygap = 1;
\ 023E 3E01 LD A,1
\ 0240 320500 LD (g_music_vars+5),A
211 g_music_vars.repeat_mode = FSEL_ALL_SEQUENCE;
\ 0243 AF XOR A
\ 0244 320100 LD (g_music_vars+1),A
212 g_music_vars.play_rate = 0;
\ 0247 320300 LD (g_music_vars+3),A
213 g_music_vars.location.disk = 'C';
\ 024A 3E43 LD A,67
\ 024C 320700 LD (g_music_vars+7),A
214 g_music_vars.play_listmod = mlistnor;
\ 024F 3E05 LD A,5
\ 0251 325000 LD (g_music_vars+80),A
215 g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
\ 0254 AF XOR A
\ 0255 325100 LD (g_music_vars+81),A
216 g_music_vars.MusicOpenMod = Nor_open;
\ 0258 320600 LD (g_music_vars+6),A
217 g_music_vars.SRSMod.Wow=8;
\ 025B 3E08 LD A,8
\ 025D 325300 LD (g_music_vars+83),A
218 g_music_vars.SRSMod.Bass=8;
\ 0260 325400 LD (g_music_vars+84),A
219 g_music_vars.SRSMod.Srs=4;
\ 0263 3E04 LD A,4
\ 0265 325500 LD (g_music_vars+85),A
220 g_music_vars.file_list_type = 0xff;
\ 0268 3EFF LD A,255
\ 026A 325C00 LD (g_music_vars+92),A
221 g_music_vars.file_list_num = 0;
\ 026D 210000 LD HL,0
\ 0270 225A00 LD (g_music_vars+90),HL
222 strcpy(g_music_vars.location.path, FS_CD_ROOT);
\ 0273 110700 LD DE,?0061
\ 0276 211500 LD HL,g_music_vars+21
\ 0279 CD0000 CALL LWRD ?STRCPY_L11
223 ClearTimePara();
\ 027C 3E00 LD A,BYTE3 ClearTimePara
\ 027E 21E302 LD HL,LWRD ClearTimePara
\ 0281 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0284 ?0060:
224 }
225 if(g_from_browser)
\ 0284 3A0000 LD A,(g_from_browser)
\ 0287 B7 OR A
\ 0288 282D JR Z,?0063
\ 028A ?0062:
226 {
227 VMRead(&temp_browser_vars, VM_AP_BROWSER, sizeof(browser_vars_t));
\ 028A 212D00 LD HL,45
\ 028D E5 PUSH HL
\ 028E 01004C LD BC,19456
\ 0291 2E0F LD L,15
\ 0293 39 ADD HL,SP
\ 0294 EB EX DE,HL
\ 0295 CD0000 CALL LWRD VMRead
\ 0298 E1 POP HL
228 memcpy(&g_music_vars.location, &temp_browser_vars.location, sizeof(file_location_t));
\ 0299 012B00 LD BC,43
\ 029C 110700 LD DE,g_music_vars+7
\ 029F 210D00 LD HL,13
\ 02A2 39 ADD HL,SP
\ 02A3 0E02 LD C,2
\ 02A5 09 ADD HL,BC
\ 02A6 0E2B LD C,43
\ 02A8 EDB0 LDIR
229 g_music_vars.file_list_type = 0xff;
\ 02AA 3EFF LD A,255
\ 02AC 325C00 LD (g_music_vars+92),A
230 ClearTimePara();
\ 02AF 3E00 LD A,BYTE3 ClearTimePara
\ 02B1 21E302 LD HL,LWRD ClearTimePara
\ 02B4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02B7 ?0063:
231 }
232 list.string_id = g_comval.langid;
\ 02B7 3A0C00 LD A,(g_comval+12)
\ 02BA 320800 LD (list+8),A
233 }
\ 02BD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 02C0 openDAC:
234
235
236
237 void openDAC(void)
238 {
\ 02C0 D5 PUSH DE
\ 02C1 F5 PUSH AF
\ 02C2 F5 PUSH AF
239 dac_t dacattr;
240 sfr IO80_dac = 0x80;
241 sfr IO8B_dac = 0x8b;
242 dacattr.dacselect = 0;
\ 02C3 210000 LD HL,0
\ 02C6 39 ADD HL,SP
\ 02C7 3600 LD (HL),0
243 dacattr.rate = FS_8K;
\ 02C9 23 INC HL
\ 02CA 3608 LD (HL),8
244 EnableDAC(& dacattr);
\ 02CC 2B DEC HL
\ 02CD EB EX DE,HL
\ 02CE CD0000 CALL LWRD EnableDAC
245 IO80_dac = IO80_dac | 0x08; //test
\ 02D1 DB80 IN A,(128)
\ 02D3 F608 OR 8
\ 02D5 D380 OUT (128),A
246 IO8B_dac = IO8B_dac | 0x10; //test
\ 02D7 DB8B IN A,(139)
\ 02D9 F610 OR 16
\ 02DB D38B OUT (139),A
247 }
\ 02DD E1 POP HL
\ 02DE E1 POP HL
\ 02DF D1 POP DE
\ 02E0 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02E3 ClearTimePara:
248
249 void ClearTimePara(void)
250 {
\ 02E3 C5 PUSH BC
\ 02E4 D5 PUSH DE
251 BYTE i;
252 g_music_vars.MusicOpenMod = Nor_open;
\ 02E5 AF XOR A
\ 02E6 320600 LD (g_music_vars+6),A
253 g_music_vars.BreakPTSave.breakPT = 0; //开始断点为0
\ 02E9 4F LD C,A
\ 02EA 69 LD L,C
\ 02EB 47 LD B,A
\ 02EC 60 LD H,B
\ 02ED 223200 LD (g_music_vars+50),HL
\ 02F0 ED433400 LD (g_music_vars+52),BC
254 g_music_vars.BreakPTDisTime.hour = 0;
\ 02F4 324D00 LD (g_music_vars+77),A
255 g_music_vars.BreakPTDisTime.minute = 0;
\ 02F7 324E00 LD (g_music_vars+78),A
256 g_music_vars.BreakPTDisTime.second = 0;
\ 02FA 324F00 LD (g_music_vars+79),A
257 g_music_vars.BreakPTSave.ApointSave = 0; //开始断点为0
\ 02FD 223600 LD (g_music_vars+54),HL
\ 0300 ED433800 LD (g_music_vars+56),BC
258 g_music_vars.BreakPTSave.BpointSave = 0; //开始断点为0
\ 0304 223A00 LD (g_music_vars+58),HL
\ 0307 ED433C00 LD (g_music_vars+60),BC
259 for (i = 0; i<12; i++)
\ 030B 1E00 LD E,0
\ 030D ?0065:
\ 030D 7B LD A,E
\ 030E FE0C CP 12
\ 0310 3009 JR NC,?0064
\ 0312 ?0066:
260 { //清0时间记录
261 g_music_vars.BreakPTSave.breakPTTime[i] = 0;
\ 0312 213E00 LD HL,g_music_vars+62
\ 0315 4B LD C,E
\ 0316 09 ADD HL,BC
\ 0317 70 LD (HL),B
\ 0318 1C INC E
\ 0319 18F2 JR ?0065
\ 031B ?0064:
262 }
263 StartIntro(TRUE)//因为时间清0了,所以浏览要从头开始
\ 031B 3E01 LD A,1
\ 031D 320000 LD (g_introCntMode),A
\ 0320 3A4F00 LD A,(g_music_vars+79)
\ 0323 320000 LD (g_OldSecTempBackup),A
\ 0326 AF XOR A
\ 0327 320000 LD (g_introCNT),A
264 }
\ 032A D1 POP DE
\ 032B C1 POP BC
\ 032C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 032F ChangeVolume:
265
266 //============改变音量================
267 int ChangeVolume( void )
268 {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?