📄 main.s01
字号:
; 171. #ifdef ACTIVE_USERPL
; 172. Reset_USERPL();
CALL LWRD ?0026
; 173. need_WPL=FALSE;
XOR A
LD (need_WPL),A
?0014:
; 174. #endif
; 175. }
; 176. }
; 177. else
JR ?0017
?0009:
; 178. { //没卡
; 179. if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
LD A,(g_DiskStateFlag)
BIT 7,A
JR NZ,?0017
?0016:
; 180. {
; 181. ResClose(g_Resfp_Sav);
?0025:
CALL LWRD ?0027
; 182. return 0;
LD HL,0
; 183. }
JP LWRD ?0023
?0017:
?0015:
; 184. }
; 185.
; 186.
; 187. //初始化变量
; 188. UpDisplayFlag = 0x00;
LD HL,0
LD (UpDisplayFlag),HL
; 189. g_currentMusicType = Music_NON;
XOR A
LD (g_currentMusicType),A
; 190. g_lyricflag = FALSE;
LD (g_lyricflag),A
; 191. g_musicsequence = 0x00;
LD (g_musicsequence),HL
; 192. g_musicamount = 0x00;
LD (g_musicamount),HL
; 193. g_music_vars.location.ID3buffer = g_TagInfoBuf;
LD HL,g_TagInfoBuf
LD (g_music_vars+45),HL
; 194.
; 195. g_Openparam.filename = g_music_vars.location.filename;//文件名地址
LD HL,g_music_vars+33
LD (g_Openparam),HL
; 196. g_Openparam.BreakPTSave = & g_music_vars.BreakPTSave;//备份参数地址
LD HL,g_music_vars+50
LD (g_Openparam+2),HL
; 197.
; 198. TimeRateData_sav.TotalTime_sav[0] = 0;
LD (TimeRateData_sav+3),A
; 199. TimeRateData_sav.TotalTime_sav[1] = 0;
LD (TimeRateData_sav+4),A
; 200. TimeRateData_sav.TotalTime_sav[2] = 0;
LD (TimeRateData_sav+5),A
; 201. TimeRateData_sav.Bitrate_sav[0] = 0;
LD (TimeRateData_sav),A
; 202. TimeRateData_sav.Bitrate_sav[1] = 0;
LD (TimeRateData_sav+1),A
; 203. TimeRateData_sav.Bitrate_sav[2] = 0;
LD (TimeRateData_sav+2),A
; 204.
; 205. ifSelBuffToltalTimeFlag = FALSE;
LD (ifSelBuffToltalTimeFlag),A
; 206. CaltimeFlag = FALSE;
LD (CaltimeFlag),A
; 207. WaitForCaltimeCNT = 0;
LD (WaitForCaltimeCNT),A
; 208.
; 209. //把控件的常驻BANK切入
; 210.
; 211. BankSwitch((unsigned long)ui_show_a >> 16);
LD E,BYTE3 ui_show_a
CALL LWRD BankSwitch
; 212. // if(g_music_vars.fselmod == FSEL_TYPE_PLAYLIST)
; 213. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;//每次进入都是设为目录选择器
XOR A
LD (g_music_vars+81),A
; 214. g_music_vars.file_list_type = 0xff; //普通播放模式
CPL
LD (g_music_vars+92),A
; 215. //初始化文件选择器
; 216. lyricInit(LYRIC_SCREEN_128_32, g_comval.langid);//初始化歌词解释器
LD BC,(g_comval+12)
LD E,1
LD A,BYTE3 lyricInit
LD HL,LWRD lyricInit
CALL LWRD ?BANK_CALL_DIRECT_L08
; 217.
; 218. Timer_2HZNo_Sav = TM_SetClock((int)Music_2HZint, 1);//打开 2HZ 定时
LD C,1
LD DE,Music_2HZint
CALL LWRD TM_SetClock
LD (Timer_2HZNo_Sav),A
; 219. MusicTimer_Sav = TM_SetTimer((int)Music_timeint, 2);//打开 20ms 定时
LD C,2
LD DE,Music_timeint
CALL LWRD TM_SetTimer
LD (MusicTimer_Sav),A
; 220.
; 221.
; 222. openDAC();
LD A,BYTE3 openDAC
LD HL,LWRD openDAC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 223. mainresult = ui_stop();// =============> 进入界面
LD A,BYTE3 ui_stop
LD HL,LWRD ui_stop
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
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
; 233. DisablePA();
CALL LWRD DisablePA
; 234. DisableDAC();
CALL LWRD DisableDAC
; 235. }
; 236.
; 237. TM_KillTimer(MusicTimer_Sav);//关闭 2hz 定时
LD DE,(MusicTimer_Sav)
CALL LWRD TM_KillTimer
; 238. TM_KillClock(Timer_2HZNo_Sav);//关闭 20ms 定时
LD DE,(Timer_2HZNo_Sav)
CALL LWRD TM_KillClock
; 239.
; 240. output8(0x05,IO05Bak);
LD HL,0
ADD HL,SP
LD A,(HL)
OUT (5),A
; 241. ResClose(g_Resfp_Sav);
CALL LWRD ?0027
; 242.
; 243. //记录 退出时播放文件的状态
; 244. fselGetLocation(& g_music_vars.location);
LD DE,g_music_vars+7
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 245. VMWrite(& g_music_vars, VM_AP_MUSIC);
LD BC,4096
LD DE,g_music_vars
CALL LWRD VMWrite
; 246. //删除跟读时可能产生的临时文件,在正常退出时保证这个文件能被删除
; 247. if ((g_DiskStateFlag & SetDiskOKFlag_def) != 0)
LD A,(g_DiskStateFlag)
BIT 7,A
JR Z,?0019
?0018:
; 248. {
; 249. FS_FRemove( FollowReadTempFileName );
LD DE,?0020
CALL LWRD FS_FRemove
?0019:
; 250. }
; 251. #ifdef ACTIVE_USERPL
; 252. if(need_WPL)
LD A,(need_WPL)
OR A
JR Z,?0022
?0021:
; 253. WrHead_PL(0);
LD E,0
LD A,BYTE3 WrHead_PL
LD HL,LWRD WrHead_PL
CALL LWRD ?BANK_CALL_DIRECT_L08
?0022:
; 254. #endif
; 255. return mainresult;
PUSH IY
POP HL
; 256. }
?0023:
POP AF
POP AF
POP IX
POP IY
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0026:
LD A,BYTE3 CreateMEIniFile
LD HL,LWRD CreateMEIniFile
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,BYTE3 CreateBookMarkFile
LD HL,LWRD CreateBookMarkFile
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,BYTE3 Reset_USERPL
LD HL,LWRD Reset_USERPL
JP LWRD ?BANK_CALL_DIRECT_L08
?0027:
PUSH IX
POP DE
LD A,BYTE3 ResClose
LD HL,LWRD ResClose
JP LWRD ?BANK_CALL_DIRECT_L08
; 257.
; 258.
; 259. /*注解*/
; 260. //[001]
; 261. /* ==FLASH 与卡的 报错处理
; 262. 设 A 表示有无格式化属性 (+A:已格;-A:未格)
; 263. B 表示有无文件属性 (+B:有文件;-B:无文件)
; 264. X 表示无意义(如在盘未格式化时谈有无文件就无意义)
; 265.
; 266. C 表示FLASH
; 267. H 表示SD卡
; 268.
; 269. 下面用组合列出所有情况:
; 270. 1) C[+A+B],H[+A+B] //两个盘都已格式化,都有文件 //不报任何错,而直接恢复退出时的断点即可
; 271. 2) C[+A+B],H[+A-B] //两个盘都已格式化,FLASH有文件,卡无文件 //直接跳到FLASH中即可
; 272. 3) C[+A+B],H[-AX] //FLASH已格式化,卡没格式化,FLASH有文件 //先报"插卡错误",再跳到FLASH中
; 273.
; 274. 4) C[+A-B],H[+A+B] //两个盘都已格式化,FLASH无文件,卡有文件 //直接跳到卡中
; 275. 5) C[+A-B],H[+A-B] //两个盘都已格式化,两个盘都无文件 //先报"磁盘没文件",再报"插卡没文件",然后退出
; 276. 6) C[+A-B],H[-AX] //FLASH已格式化,卡没格式化,FLASH无文件 //先报"插卡错误",再报"磁盘没文件",然后退出
; 277.
; 278. 7) C[-AX],H[+A+B] //FLASH没格式化,卡已格式化,卡中有文件 //先报"磁盘错误",然后跳到卡中
; 279. 8) C[-AX],H[+A-B] //FLASH没格式化,卡已格式化,卡中无文件 //先报"磁盘错误",再报"卡没文件",然后退出
; 280. 9) C[-AX],H[-AX] //两个盘都没格式化 //先报"磁盘错误" ,再报“插卡错误”,然后退出
; 281. */
; 282.
RSEG CSTR
?0020:
DEFB '$$TEMP$$WAV'
DEFB 0
RSEG UDATA0
g_comval:
DEFS 32
g_music_vars:
DEFS 95
g_TagInfoBuf:
DEFS 90
g_FCexitflag:
DEFS 1
g_Openparam:
DEFS 4
g_OldSecTempBackup:
DEFS 1
g_introCNT:
DEFS 1
g_introCntMode:
DEFS 1
need_draw:
DEFS 1
list:
DEFS 9
UpDisplayFlag:
DEFS 2
g_lyricflag:
DEFS 1
g_currentMusicType:
DEFS 1
g_musicamount:
DEFS 2
g_musicsequence:
DEFS 2
g_file_list_total:
DEFS 2
MusicTimer_Sav:
DEFS 1
Timer_2HZNo_Sav:
DEFS 1
g_2HZ_CNT:
DEFS 2
g_ABPointTimeSize:
DEFS 2
g_Resfp_Sav:
DEFS 2
g_ReplayTimeCNT:
DEFS 1
savenum:
DEFS 1
g_PowerOffFlag:
DEFS 1
g_result:
DEFS 2
MusicEditSelStatus:
DEFS 1
MusicEditStatus:
DEFS 1
MusicEdit_SelSeg:
DEFS 14
MusicEditStartTime:
DEFS 3
MusicEditEndTime:
DEFS 3
FirstOffset:
DEFS 2
LastOffset:
DEFS 2
PlaylistCount:
DEFS 2
need_WPL:
DEFS 1
RSEG IDATA0
return_to_play:
DEFS 1
RePlayStatus:
DEFS 1
PlayStatus:
DEFS 1
g_ScrollFlag:
DEFS 1
g_2HZFlag:
DEFS 1
g_FadeInStepFlag:
DEFS 1
g_AVSetFlag:
DEFS 1
g_PAOpenFlag:
DEFS 1
g_DiskStateFlag:
DEFS 1
ifSelBuffToltalTimeFlag:
DEFS 1
g_from_browser:
DEFS 1
bList_Flag:
DEFS 1
RSEG CDATA0
DEFB 0
DEFB 0
DEFB 0
DEFB 0
DEFB 1
DEFB 1
DEFB 0
DEFB 0
DEFB 0
DEFB 0
DEFB 0
DEFB 0
RSEG APC_UI_MAIN
MPLFileName:
DEFB 'PLAYLISTA3L'
DEFB 0
DEFB 'ARTIST A3L'
DEFB 0
DEFB 'ALBUM A3L'
DEFB 0
DEFB 'GENRE A3L'
DEFB 0
DEFB 'COMPOSERA3L'
DEFB 0
ResFileName:
DEFB 'ui30.res'
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -