📄 sub_function2.s01
字号:
LD A,67
LD (g_amv_vars+5),A
; 155.
; 156. strcpy(g_amv_vars.location.path, FS_CD_ROOT);
LD DE,?0023
LD HL,g_amv_vars+19
CALL LWRD ?STRCPY_L11
; 157. ClearTimePara();
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
?0022:
; 158. }
; 159. if(g_from_browser)
LD A,(g_from_browser)
OR A
JR Z,?0025
?0024:
; 160. {
; 161. VMRead(&temp_browser_vars, VM_AP_BROWSER, sizeof(browser_vars_t));
LD HL,45
PUSH HL
LD BC,19456
LD L,2
ADD HL,SP
EX DE,HL
CALL LWRD VMRead
POP HL
; 162. memcpy(&g_amv_vars.location, &temp_browser_vars.location, sizeof(file_location_t));
LD BC,43
LD DE,g_amv_vars+5
LD L,B
LD H,B
ADD HL,SP
LD C,2
ADD HL,BC
LD C,43
LDIR
; 163. ClearTimePara();
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
?0025:
; 164. }
; 165.
; 166.
; 167. }
LD HL,46
JP LWRD ?0043
DealErrCase:
; 168. /*
; 169. ********************************************************************************
; 170. * bool DealErrCase(void)
; 171. *
; 172. * Description : 获取文件选择器的出错类型 (文件选择器错处理)
; 173. *
; 174. * Arguments : void
; 175. *
; 176. * Returns : int 出错号
; 177. *
; 178. * Notes :
; 179. *
; 180. ********************************************************************************
; 181. */
; 182. bool DealErrCase( void )
; 183. {
PUSH BC
PUSH DE
PUSH AF
; 184.
; 185. BYTE id;
; 186.
; 187.
; 188. id = FSELGetErrID();
LD A,BYTE3 fselGetErrID
LD HL,LWRD fselGetErrID
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
LD HL,2
ADD HL,SP
POP BC
LD (HL),C
?0027:
; 189. while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
CALL LWRD ap_get_message
OR A
JR NZ,?0027
?0028:
?0026:
; 190. switch (id)
LD L,A
LD H,A
ADD HL,SP
LD A,(HL)
CP 2
JR NZ,?0031
?0030:
; 191. {
; 192. case FSEL_ERR_EMPTY:
; 193. ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,628
JR ?0042
; 194. ap_sleep(4);
; 195. break;
?0031:
CP 21
JR C,?0029
CP 23
JR NC,?0029
; 196.
; 197. case FSEL_ERR_FAIL:
; 198. case FSEL_ERR_DISK:
; 199. ui_show_msg (MREADERR, MREADERR, g_langid);
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,508
?0042:
LD E,C
LD D,B
LD A,BYTE3 ui_show_msg
LD HL,LWRD ui_show_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 200. ap_sleep(4);
LD DE,4
LD A,BYTE3 ap_sleep
LD HL,LWRD ap_sleep
CALL LWRD ?BANK_CALL_DIRECT_L08
; 201. break;
?0032:
; 202.
; 203. default:
; 204. break;
?0029:
; 205. }
; 206.
; 207. ResClose(g_Resfp_Sav);
LD DE,(g_Resfp_Sav)
LD A,BYTE3 ResClose
LD HL,LWRD ResClose
CALL LWRD ?BANK_CALL_DIRECT_L08
; 208. return 0;
LD L,0
; 209.
; 210. }
POP AF
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
openDAC:
; 211.
; 212.
; 213. void openDAC(void)
; 214. {
PUSH DE
PUSH AF
PUSH AF
; 215. dac_t dacattr;
; 216. output8(0x5,0xf7); // set the 05 regsiter
LD A,247
OUT (5),A
; 217. output8(0x4e,input8(0x4e)|0x8);
IN A,(78)
SET 3,A
OUT (78),A
; 218.
; 219. dacattr.dacselect = 0;
LD HL,0
ADD HL,SP
LD (HL),0
; 220. dacattr.rate = 22;
INC HL
LD (HL),22
; 221. EnableDAC(&dacattr);
DEC HL
EX DE,HL
CALL LWRD EnableDAC
; 222.
; 223. }
POP HL
POP HL
POP DE
JP LWRD ?BANK_FAST_LEAVE_L08
ClearTimePara:
; 224.
; 225. void ClearTimePara(void)
; 226. {
PUSH BC
; 227. BYTE i;
; 228. g_amv_vars.amvfilebreakpoint.AmvFileFLashDot=0;
LD BC,0
LD (g_amv_vars+48),BC
LD (g_amv_vars+50),BC
; 229. g_amv_vars.amvfilebreakpoint.TimeSec=0;
XOR A
LD (g_amv_vars+52),A
; 230. g_amv_vars.amvfilebreakpoint.TimeMin=0;
LD (g_amv_vars+53),A
; 231. g_amv_vars.amvfilebreakpoint.TimeHou=0;
LD (g_amv_vars+54),A
; 232.
; 233.
; 234. }
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
GetInformation1:
; 235.
; 236.
; 237.
; 238. /*
; 239. ********************************************************************************
; 240. * int GetInformation(void)
; 241. *
; 242. * Description : 读取歌曲信息,歌词
; 243. *
; 244. * Arguments : void
; 245. *
; 246. * Returns : int
; 247. *
; 248. * Notes :
; 249. *
; 250. ********************************************************************************
; 251. */
; 252. int GetInformation1( void )//取下一首文件信息
; 253. {
PUSH BC
PUSH DE
PUSH IX
; 254. int result;
; 255. memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
LD BC,12
LD DE,g_TagInfoBuf
LD HL,g_amv_vars+31
LDIR
; 256. result = FS_GetName(g_TagInfoBuf, 31); //取出长名
LD C,31
LD DE,g_TagInfoBuf
CALL LWRD FS_GetName
LD B,0
; 257. if (result != 0)
OR A
JR Z,?0034
?0033:
; 258. {
; 259. unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_langid);
LD A,(g_langid)
LD C,A
PUSH BC
LD C,66
LD DE,g_TagInfoBuf
LD A,BYTE3 unitochar
LD HL,LWRD unitochar
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 260. }
; 261. else
JR ?0035
?0034:
; 262. {
; 263. memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
LD C,12
LD DE,g_TagInfoBuf
LD HL,g_amv_vars+31
LDIR
; 264. g_TagInfoBuf[8]=0;
LD (g_TagInfoBuf+8),A
; 265. g_TagInfoBuf[9]=0;
LD (g_TagInfoBuf+9),A
?0035:
; 266. }
; 267.
; 268. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 269. }
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
GetInformation:
; 270.
; 271.
; 272. int GetInformation( void )
; 273. {
PUSH BC
PUSH DE
PUSH IX
; 274. int result;
; 275.
; 276. memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
LD BC,12
LD DE,g_TagInfoBuf
LD HL,g_amv_vars+31
LDIR
; 277. result = FS_GetName(g_TagInfoBuf, 32); //取出长名
LD C,32
LD DE,g_TagInfoBuf
CALL LWRD FS_GetName
LD B,0
; 278. if (result != 0)
OR A
JR Z,?0037
?0036:
; 279. {
; 280. unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_langid);
LD A,(g_langid)
LD C,A
PUSH BC
LD C,66
LD DE,g_TagInfoBuf
LD A,BYTE3 unitochar
LD HL,LWRD unitochar
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 281. }
; 282. else
JR ?0038
?0037:
; 283. {
; 284. memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
LD C,12
LD DE,g_TagInfoBuf
LD HL,g_amv_vars+31
LDIR
?0038:
; 285. }
; 286.
; 287. fp=FS_FOpen( g_amv_vars.location.filename, FS_OPEN_NORMAL );
LD C,0
LD DE,g_amv_vars+31
CALL LWRD FS_FOpen
LD (fp),HL
; 288. FS_FSeek( 0, 0, fp );
PUSH HL
LD C,0
PUSH BC
LD B,C
LD D,B
LD E,C
CALL LWRD FS_FSeek
POP HL
POP HL
; 289. FS_FRead(&g_fileheadinfo[0], 1 ,fp );
LD HL,(fp)
PUSH HL
LD C,1
LD DE,g_fileheadinfo
CALL LWRD FS_FRead
POP HL
; 290. FS_FClose(fp);
LD DE,(fp)
CALL LWRD FS_FClose
; 291. Totaltime.second=g_fileheadinfo[84];
LD A,(g_fileheadinfo+84)
LD (Totaltime+2),A
; 292. Totaltime.minute=g_fileheadinfo[85];
LD A,(g_fileheadinfo+85)
LD (Totaltime+1),A
; 293. Totaltime.hour=g_fileheadinfo[86]; //小时的低位
LD A,(g_fileheadinfo+86)
LD (Totaltime),A
; 294. output8(0x4e,input8(0x4e)|0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 295. return 0;
LD HL,0
; 296. }
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
openPA:
; 297.
; 298.
; 299.
; 300. //==================================================================
; 301. void openPA(char volume)
; 302. {
PUSH BC
PUSH DE
PUSH AF
PUSH AF
; 303. int i;
; 304. pa_t paattr;
; 305.
; 306. g_PAOpenFlag = TRUE;//标志PA已打开
LD A,1
LD (g_PAOpenFlag),A
; 307. paattr.pa_in.dacin = 1;
LD HL,0
ADD HL,SP
SET 0,(HL)
; 308. paattr.pa_in.fmin = 0;
RES 1,(HL)
; 309. paattr.pa_in.linein = 0;
RES 2,(HL)
; 310. paattr.pa_in.micin = 0;
RES 3,(HL)
; 311. paattr.volume = volume;
INC HL
PUSH HL
LD B,E
POP HL
LD (HL),B
; 312. EnablePA(& paattr);
LD HL,0
ADD HL,SP
EX DE,HL
CALL LWRD EnablePA
; 313. SetPAVolume(volume);
LD E,B
CALL LWRD SetPAVolume
; 314. }
POP HL
POP HL
POP HL
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
; 315. //===================================================
RSEG CSTR
?0014:
DEFB 'ROOT'
DEFB 0
?0023:
DEFB ':'
DEFB 0
RSEG UDATA0
fp:
DEFS 2
RSEG APD_SUB_FUN
g_fileheadinfo:
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DEFB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -