📄 main.s01
字号:
LD A,(g_DiskStateFlag)
BIT 7,A
JR NZ,?0016
?0015:
; 151. {
; 152. ResClose(g_Resfp_Sav);
?0022:
CALL LWRD ?0023
; 153. return 0;
LD HL,0
; 154. }
JP LWRD ?0020
?0016:
?0014:
; 155. }
; 156.
; 157. //TestForRec();
; 158.
; 159. //初始化变量
; 160. UpDisplayFlag = 0x00;
LD HL,0
LD (UpDisplayFlag),HL
; 161. g_currentMusicType = Music_NON;
XOR A
LD (g_currentMusicType),A
; 162. g_lyricflag = FALSE;
LD (g_lyricflag),A
; 163. g_musicsequence = 0x00;
LD (g_musicsequence),HL
; 164. g_musicamount = 0x00;
LD (g_musicamount),HL
; 165. g_music_vars.location.ID3buffer = g_TagInfoBuf;
LD HL,g_TagInfoBuf
LD (g_music_vars+45),HL
; 166.
; 167. g_Openparam.filename = g_music_vars.location.filename;//文件名地址
LD HL,g_music_vars+33
LD (g_Openparam),HL
; 168. g_Openparam.BreakPTSave = & g_music_vars.BreakPTSave;//备份参数地址
LD HL,g_music_vars+48
LD (g_Openparam+2),HL
; 169.
; 170. TimeRateData_sav.TotalTime_sav[0] = 0;
LD (TimeRateData_sav+3),A
; 171. TimeRateData_sav.TotalTime_sav[1] = 0;
LD (TimeRateData_sav+4),A
; 172. TimeRateData_sav.TotalTime_sav[2] = 0;
LD (TimeRateData_sav+5),A
; 173. TimeRateData_sav.Bitrate_sav[0] = 0;
LD (TimeRateData_sav),A
; 174. TimeRateData_sav.Bitrate_sav[1] = 0;
LD (TimeRateData_sav+1),A
; 175. TimeRateData_sav.Bitrate_sav[2] = 0;
LD (TimeRateData_sav+2),A
; 176.
; 177. ifSelBuffToltalTimeFlag = FALSE;
LD (ifSelBuffToltalTimeFlag),A
; 178. CaltimeFlag = FALSE;
LD (CaltimeFlag),A
; 179. WaitForCaltimeCNT = 0;
LD (WaitForCaltimeCNT),A
; 180.
; 181. //把控件的常驻BANK切入
; 182. BankSwitch((unsigned long)ui_show_a >> 16);
LD E,BYTE3 ui_show_a
CALL LWRD BankSwitch
; 183.
; 184. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;//每次进入都是设为目录选择器
XOR A
LD (g_music_vars+79),A
; 185.
; 186. //初始化文件选择器
; 187.
; 188. 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
; 189.
; 190. 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
; 191. MusicTimer_Sav = TM_SetTimer((int)Music_timeint, 2);//打开 20ms 定时
LD C,2
LD DE,Music_timeint
CALL LWRD TM_SetTimer
LD (MusicTimer_Sav),A
; 192.
; 193.
; 194. openDAC();
LD A,BYTE3 openDAC
LD HL,LWRD openDAC
CALL LWRD ?BANK_CALL_DIRECT_L08
; 195. mainresult = ui_stop();// =============> 进入界面
LD A,BYTE3 ui_stop
LD HL,LWRD ui_stop
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
; 196. //由于特殊情况,这个开PA的动作放在开始播放时做
; 197. ClosePA();
LD A,BYTE3 ClosePA
LD HL,LWRD ClosePA
CALL LWRD ?BANK_CALL_DIRECT_L08
; 198. DisableDAC();
CALL LWRD DisableDAC
; 199.
; 200. TM_KillTimer(MusicTimer_Sav);//关闭 2hz 定时
LD DE,(MusicTimer_Sav)
CALL LWRD TM_KillTimer
; 201. TM_KillClock(Timer_2HZNo_Sav);//关闭 20ms 定时
LD DE,(Timer_2HZNo_Sav)
CALL LWRD TM_KillClock
; 202.
; 203.
; 204. ResClose(g_Resfp_Sav);
CALL LWRD ?0023
; 205.
; 206. //记录 退出时播放文件的状态
; 207. 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
; 208. VMWrite(& g_music_vars, VM_AP_MUSIC);
LD BC,4096
LD DE,g_music_vars
CALL LWRD VMWrite
; 209. //////////////////////////// zxs add for card
; 210. output8(0x2f,input8(0x2f)|0x04); //CE3 change to GIOA3
IN A,(47)
SET 2,A
OUT (47),A
; 211. output8(0xee,input8(0xee)&0xf7);
IN A,(238)
RES 3,A
OUT (238),A
; 212. output8(0xf7,input8(0xf7)|0x01); // PowerOff
IN A,(247)
SET 0,A
OUT (247),A
; 213. //////////////////////////// zxs add for card
; 214. //删除跟读时可能产生的临时文件,在正常退出时保证这个文件能被删除
; 215. if ((g_DiskStateFlag & SetDiskOKFlag_def) != 0)
LD A,(g_DiskStateFlag)
BIT 7,A
JR Z,?0018
?0017:
; 216. {
; 217. FS_FRemove( FollowReadTempFileName );
LD DE,?0019
CALL LWRD FS_FRemove
?0018:
; 218. }
; 219.
; 220. // while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
; 221. return mainresult;
PUSH IX
POP HL
; 222. }
?0020:
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0023:
LD DE,(g_Resfp_Sav)
LD A,BYTE3 ResClose
LD HL,LWRD ResClose
JP LWRD ?BANK_CALL_DIRECT_L08
; 223.
; 224.
; 225. /*注解*/
; 226. //[001]
; 227. /* ==FLASH 与卡的 报错处理
; 228. 设 A 表示有无格式化属性 (+A:已格;-A:未格)
; 229. B 表示有无文件属性 (+B:有文件;-B:无文件)
; 230. X 表示无意义(如在盘未格式化时谈有无文件就无意义)
; 231.
; 232. C 表示FLASH
; 233. H 表示SD卡
; 234.
; 235. 下面用组合列出所有情况:
; 236. 1) C[+A+B],H[+A+B] //两个盘都已格式化,都有文件 //不报任何错,而直接恢复退出时的断点即可
; 237. 2) C[+A+B],H[+A-B] //两个盘都已格式化,FLASH有文件,卡无文件 //直接跳到FLASH中即可
; 238. 3) C[+A+B],H[-AX] //FLASH已格式化,卡没格式化,FLASH有文件 //先报"插卡错误",再跳到FLASH中
; 239.
; 240. 4) C[+A-B],H[+A+B] //两个盘都已格式化,FLASH无文件,卡有文件 //直接跳到卡中
; 241. 5) C[+A-B],H[+A-B] //两个盘都已格式化,两个盘都无文件 //先报"磁盘没文件",再报"插卡没文件",然后退出
; 242. 6) C[+A-B],H[-AX] //FLASH已格式化,卡没格式化,FLASH无文件 //先报"插卡错误",再报"磁盘没文件",然后退出
; 243.
; 244. 7) C[-AX],H[+A+B] //FLASH没格式化,卡已格式化,卡中有文件 //先报"磁盘错误",然后跳到卡中
; 245. 8) C[-AX],H[+A-B] //FLASH没格式化,卡已格式化,卡中无文件 //先报"磁盘错误",再报"卡没文件",然后退出
; 246. 9) C[-AX],H[-AX] //两个盘都没格式化 //先报"磁盘错误" ,再报“插卡错误”,然后退出
; 247. */
; 248.
RSEG CSTR
?0002:
DEFB 'ui30.res'
DEFB 0
?0019:
DEFB '$$TEMP$$WAV'
DEFB 0
RSEG UDATA0
g_comval:
DEFS 32
g_music_vars:
DEFS 86
g_TagInfoBuf:
DEFS 90
g_FCexitflag:
DEFS 1
g_TagInfoBuf1:
DEFS 20
couterkey:
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
slider:
DEFS 11
UpDisplayFlag:
DEFS 2
g_lyricflag:
DEFS 1
g_currentMusicType:
DEFS 1
g_musicamount:
DEFS 2
g_musicsequence:
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
PlayListScrollRegion:
DEFS 4
ScrollFlag:
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_CardInFlag:
DEFS 1
g_DiskStateFlag:
DEFS 1
ifSelBuffToltalTimeFlag:
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
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
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -