main.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 771 行 · 第 1/3 页
LST
771 行
\ 001A 3E00 LD A,BYTE3 ResOpen
\ 001C 210000 LD HL,LWRD ResOpen
\ 001F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0022 E5 PUSH HL
\ 0023 DDE1 POP IX
123
124
125 /* 读入公共变量 */
126 read_var();
\ 0025 3E00 LD A,BYTE3 read_var
\ 0027 210000 LD HL,LWRD read_var
\ 002A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
127 IO05Bak=input8(0x05);
\ 002D DB05 IN A,(5)
\ 002F 210000 LD HL,0
\ 0032 39 ADD HL,SP
\ 0033 77 LD (HL),A
128
129 ClearScreen(NULL);//清屏
\ 0034 110000 LD DE,0
\ 0037 CD0000 CALL LWRD ClearScreen
130 SetPenColor(Color_BLACK_def);
\ 003A 010000 LD BC,0
\ 003D 59 LD E,C
\ 003E 50 LD D,B
\ 003F CD0000 CALL LWRD SetPenColor
131 ResShowMultiString(WAITPASS, g_comval.langid, 255, 58);//显示请稍候
\ 0042 0E3A LD C,58
\ 0044 C5 PUSH BC
\ 0045 0EFF LD C,255
\ 0047 C5 PUSH BC
\ 0048 ED4B0C00 LD BC,(g_comval+12)
\ 004C 115802 LD DE,600
\ 004F 3E00 LD A,BYTE3 ResShowMultiString
\ 0051 210000 LD HL,LWRD ResShowMultiString
\ 0054 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0057 F1 POP AF
\ 0058 F1 POP AF
132
133
134
135 DRV_ActiveUD(0,MODE_SLOW);
\ 0059 0E01 LD C,1
\ 005B 1E00 LD E,0
\ 005D CD0000 CALL LWRD DRV_ActiveUD
136
137 if (DRV_ActiveDrive('C', MODE_SLOW))
\ 0060 0E01 LD C,1
\ 0062 1E43 LD E,67
\ 0064 CD0000 CALL LWRD DRV_ActiveDrive
\ 0067 B7 OR A
\ 0068 280C JR Z,?0005
\ 006A ?0004:
138 {
139 g_DiskStateFlag |= SetDiskOKFlag_def;//标志 flash 已格式化
\ 006A 210800 LD HL,g_DiskStateFlag
\ 006D CBFE SET 7,(HL)
140 CreateMEIniFile(); //add by mzh 2007.3.15
141 CreateBookMarkFile(); //add by mzh 2007.3.15
142 #ifdef ACTIVE_USERPL
143 Reset_USERPL();
\ 006F CDB801 CALL LWRD ?0026
144 need_WPL=FALSE;
\ 0072 AF XOR A
\ 0073 321E01 LD (need_WPL),A
\ 0076 ?0005:
145 #endif
146 }
147
148 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 0076 3A0800 LD A,(g_DiskStateFlag)
\ 0079 CB7F BIT 7,A
\ 007B 200B JR NZ,?0007
\ 007D ?0006:
149 {
150 DisplayErrInfor(MREADERR);//显示磁盘错
\ 007D 11FC01 LD DE,508
\ 0080 3E00 LD A,BYTE3 DisplayErrInfor
\ 0082 210000 LD HL,LWRD DisplayErrInfor
\ 0085 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0088 ?0007:
151 }
152
153 if (DRV_DetectUD(1) == 0x20)
\ 0088 1E01 LD E,1
\ 008A CD0000 CALL LWRD DRV_DetectUD
\ 008D FE20 CP 32
\ 008F 2037 JR NZ,?0009
\ 0091 ?0008:
154 { //有卡
155 DRV_ActiveUD(1,MODE_SLOW);
\ 0091 0E01 LD C,1
\ 0093 59 LD E,C
\ 0094 CD0000 CALL LWRD DRV_ActiveUD
156 if (!DRV_ActiveDrive('H', MODE_SLOW))
\ 0097 0E01 LD C,1
\ 0099 1E48 LD E,72
\ 009B CD0000 CALL LWRD DRV_ActiveDrive
\ 009E B7 OR A
\ 009F 2019 JR NZ,?0011
\ 00A1 ?0010:
157 {
158 DisplayErrInfor(CREADERR);//显示卡错
\ 00A1 117602 LD DE,630
\ 00A4 3E00 LD A,BYTE3 DisplayErrInfor
\ 00A6 210000 LD HL,LWRD DisplayErrInfor
\ 00A9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
159 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 00AC 3A0800 LD A,(g_DiskStateFlag)
\ 00AF CB7F BIT 7,A
\ 00B1 281C JR Z,?0025
\ 00B3 ?0012:
160 {
161 ResClose(g_Resfp_Sav);
162 return 0;
163 }
\ 00B3 ?0013:
164 g_music_vars.location.disk='C';
\ 00B3 3E43 LD A,67
\ 00B5 322700 LD (g_music_vars+7),A
165 }
166 else
\ 00B8 181E JR ?0017
\ 00BA ?0011:
167 {
168 g_DiskStateFlag|=SetCardOKFlag_def;
\ 00BA 210800 LD HL,g_DiskStateFlag
\ 00BD CBDE SET 3,(HL)
169 CreateMEIniFile(); //add by mzh 2007.3.15
170 CreateBookMarkFile(); //add by mzh 2007.3.15
171 #ifdef ACTIVE_USERPL
172 Reset_USERPL();
\ 00BF CDB801 CALL LWRD ?0026
173 need_WPL=FALSE;
\ 00C2 AF XOR A
\ 00C3 321E01 LD (need_WPL),A
\ 00C6 ?0014:
174 #endif
175 }
176 }
177 else
\ 00C6 1810 JR ?0017
\ 00C8 ?0009:
178 { //没卡
179 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 00C8 3A0800 LD A,(g_DiskStateFlag)
\ 00CB CB7F BIT 7,A
\ 00CD 2009 JR NZ,?0017
\ 00CF ?0016:
180 {
181 ResClose(g_Resfp_Sav);
\ 00CF ?0025:
\ 00CF CDD001 CALL LWRD ?0027
182 return 0;
\ 00D2 210000 LD HL,0
183 }
\ 00D5 C3AE01 JP LWRD ?0023
\ 00D8 ?0017:
\ 00D8 ?0015:
184 }
185
186
187 //初始化变量
188 UpDisplayFlag = 0x00;
\ 00D8 210000 LD HL,0
\ 00DB 22EB00 LD (UpDisplayFlag),HL
189 g_currentMusicType = Music_NON;
\ 00DE AF XOR A
\ 00DF 32EE00 LD (g_currentMusicType),A
190 g_lyricflag = FALSE;
\ 00E2 32ED00 LD (g_lyricflag),A
191 g_musicsequence = 0x00;
\ 00E5 22F100 LD (g_musicsequence),HL
192 g_musicamount = 0x00;
\ 00E8 22EF00 LD (g_musicamount),HL
193 g_music_vars.location.ID3buffer = g_TagInfoBuf;
\ 00EB 217F00 LD HL,g_TagInfoBuf
\ 00EE 224D00 LD (g_music_vars+45),HL
194
195 g_Openparam.filename = g_music_vars.location.filename;//文件名地址
\ 00F1 214100 LD HL,g_music_vars+33
\ 00F4 22DA00 LD (g_Openparam),HL
196 g_Openparam.BreakPTSave = & g_music_vars.BreakPTSave;//备份参数地址
\ 00F7 215200 LD HL,g_music_vars+50
\ 00FA 22DC00 LD (g_Openparam+2),HL
197
198 TimeRateData_sav.TotalTime_sav[0] = 0;
\ 00FD 320300 LD (TimeRateData_sav+3),A
199 TimeRateData_sav.TotalTime_sav[1] = 0;
\ 0100 320400 LD (TimeRateData_sav+4),A
200 TimeRateData_sav.TotalTime_sav[2] = 0;
\ 0103 320500 LD (TimeRateData_sav+5),A
201 TimeRateData_sav.Bitrate_sav[0] = 0;
\ 0106 320000 LD (TimeRateData_sav),A
202 TimeRateData_sav.Bitrate_sav[1] = 0;
\ 0109 320100 LD (TimeRateData_sav+1),A
203 TimeRateData_sav.Bitrate_sav[2] = 0;
\ 010C 320200 LD (TimeRateData_sav+2),A
204
205 ifSelBuffToltalTimeFlag = FALSE;
\ 010F 320900 LD (ifSelBuffToltalTimeFlag),A
206 CaltimeFlag = FALSE;
\ 0112 320000 LD (CaltimeFlag),A
207 WaitForCaltimeCNT = 0;
\ 0115 320000 LD (WaitForCaltimeCNT),A
208
209 //把控件的常驻BANK切入
210
211 BankSwitch((unsigned long)ui_show_a >> 16);
\ 0118 1E00 LD E,BYTE3 ui_show_a
\ 011A CD0000 CALL LWRD BankSwitch
212 // if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST)
213 g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;//每次进入都是设为目录选择器
\ 011D AF XOR A
\ 011E 327100 LD (g_music_vars+81),A
214 g_music_vars.file_list_type = 0xff; //普通播放模式
\ 0121 2F CPL
\ 0122 327C00 LD (g_music_vars+92),A
215 //初始化文件选择器
216 lyricInit(LYRIC_SCREEN_128_32, g_comval.langid);//初始化歌词解释器
\ 0125 ED4B0C00 LD BC,(g_comval+12)
\ 0129 1E01 LD E,1
\ 012B 3E00 LD A,BYTE3 lyricInit
\ 012D 210000 LD HL,LWRD lyricInit
\ 0130 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
217
218 Timer_2HZNo_Sav = TM_SetClock((int)Music_2HZint, 1);//打开 2HZ 定时
\ 0133 0E01 LD C,1
\ 0135 110000 LD DE,Music_2HZint
\ 0138 CD0000 CALL LWRD TM_SetClock
\ 013B 32F600 LD (Timer_2HZNo_Sav),A
219 MusicTimer_Sav = TM_SetTimer((int)Music_timeint, 2);//打开 20ms 定时
\ 013E 0E02 LD C,2
\ 0140 110000 LD DE,Music_timeint
\ 0143 CD0000 CALL LWRD TM_SetTimer
\ 0146 32F500 LD (MusicTimer_Sav),A
220
221
222 openDAC();
\ 0149 3E00 LD A,BYTE3 openDAC
\ 014B 210000 LD HL,LWRD openDAC
\ 014E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
223 mainresult = ui_stop();// =============> 进入界面
\ 0151 3E00 LD A,BYTE3 ui_stop
\ 0153 210000 LD HL,LWRD ui_stop
\ 0156 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0159 E5 PUSH HL
\ 015A FDE1 POP IY
224 //由于特殊情况,这个开PA的动作放在开始播放时做
225 /*
226 if(g_comval.KeyTone) //key tone add by mzh 2007.3.14
227 {
228 ClosePA();
229 DisableDAC();
230 }
231 */
232 { //Jerry Xie Modify for test
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?