⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub_function2.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	LD	HL,24941
	LD	(g_amv_vars),HL
; 151.	        g_amv_vars.volume = 24;
	LD	A,24
	LD	(g_amv_vars+2),A
; 152.	        g_amv_vars.repeat_mode = FSEL_ALL_SEQUENCE;
	XOR	A
	LD	(g_amv_vars+3),A
; 153.	        g_amv_vars.location.disk = 'C';
	LD	A,67
	LD	(g_amv_vars+5),A
; 154.	
; 155.	        strcpy(g_amv_vars.location.path, FS_CD_ROOT);
	LD	DE,?0023
	LD	HL,g_amv_vars+19
	CALL	LWRD ?STRCPY_L11
; 156.	        ClearTimePara();
	LD	A,BYTE3 ClearTimePara
	LD	HL,LWRD ClearTimePara
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0022:
; 157.	    }
; 158.	
; 159.	
; 160.	}
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
DealErrCase:
; 161.	/*
; 162.	********************************************************************************
; 163.	*             bool DealErrCase(void)
; 164.	*
; 165.	* Description : 获取文件选择器的出错类型  (文件选择器错处理)
; 166.	*
; 167.	* Arguments   : void
; 168.	*
; 169.	* Returns     : int 出错号
; 170.	*
; 171.	* Notes       :
; 172.	*
; 173.	********************************************************************************
; 174.	*/
; 175.	bool DealErrCase( void )
; 176.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 177.	 
; 178.	    BYTE id;
; 179.	
; 180.	 
; 181.	    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
?0025:
; 182.	    while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0025
?0026:
?0024:
; 183.	    switch (id)
	LD	L,A
	LD	H,A
	ADD	HL,SP
	LD	A,(HL)
	CP	2
	JR	NZ,?0029
?0028:
; 184.	    {
; 185.	        case FSEL_ERR_EMPTY:
; 186.	            ui_show_msg (DFILEOUT, DFILEOUT, g_langid);
	LD	BC,(g_langid)
	LD	B,0
	PUSH	BC
	LD	BC,402
	JR	?0040
; 187.	            ap_sleep(4);
; 188.	            break;
?0029:
	CP	21
	JR	C,?0027
	CP	23
	JR	NC,?0027
; 189.	
; 190.	        case FSEL_ERR_FAIL:
; 191.	        case FSEL_ERR_DISK:
; 192.	            ui_show_msg (MREADERR, MREADERR, g_langid);
	LD	BC,(g_langid)
	LD	B,0
	PUSH	BC
	LD	BC,393
?0040:
	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
; 193.	            ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 194.	            break;
?0030:
; 195.	
; 196.	        default:
; 197.	            break;
?0027:
; 198.	    }
; 199.	
; 200.	    ResClose(g_Resfp_Sav);
	LD	DE,(g_Resfp_Sav)
	LD	A,BYTE3 ResClose
	LD	HL,LWRD ResClose
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 201.	    return 0;
	LD	L,0
; 202.	
; 203.	}
	POP	AF
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
openDAC:
; 204.	
; 205.	
; 206.	void openDAC(void)
; 207.	{
	PUSH	DE
	PUSH	AF
	PUSH	AF
; 208.	    dac_t dacattr;
; 209.	    output8(0x5,0xf7); // set the 05 regsiter
	LD	A,247
	OUT	(5),A
; 210.	    output8(0x4e,input8(0x4e)|0x8);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 211.	
; 212.	    dacattr.dacselect = 0;
	LD	HL,0
	ADD	HL,SP
	LD	(HL),0
; 213.	    dacattr.rate = 22;
	INC	HL
	LD	(HL),22
; 214.	    EnableDAC(&dacattr);
	DEC	HL
	EX	DE,HL
	CALL	LWRD EnableDAC
; 215.	
; 216.	}
	POP	HL
	POP	HL
	POP	DE
	JP	LWRD ?BANK_FAST_LEAVE_L08
ClearTimePara:
; 217.	
; 218.	void ClearTimePara(void)
; 219.	{
	PUSH	BC
; 220.	        BYTE i;
; 221.	        g_amv_vars.amvfilebreakpoint.AmvFileFLashDot=0;
	LD	BC,0
	LD	(g_amv_vars+46),BC
	LD	(g_amv_vars+48),BC
; 222.	        g_amv_vars.amvfilebreakpoint.TimeSec=0;
	XOR	A
	LD	(g_amv_vars+50),A
; 223.	        g_amv_vars.amvfilebreakpoint.TimeMin=0;
	LD	(g_amv_vars+51),A
; 224.	        g_amv_vars.amvfilebreakpoint.TimeHou=0;
	LD	(g_amv_vars+52),A
; 225.	
; 226.	
; 227.	}
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
GetInformation1:
; 228.	
; 229.	
; 230.	
; 231.	/*
; 232.	********************************************************************************
; 233.	*             int GetInformation(void)
; 234.	*
; 235.	* Description : 读取歌曲信息,歌词
; 236.	*
; 237.	* Arguments   : void
; 238.	*
; 239.	* Returns     : int
; 240.	*
; 241.	* Notes       :
; 242.	*
; 243.	********************************************************************************
; 244.	*/
; 245.	int GetInformation1( void )//取下一首文件信息
; 246.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
; 247.	      int result;
; 248.	      memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
	LD	BC,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_amv_vars+31
	LDIR
; 249.	     result = FS_GetName(g_TagInfoBuf, 31); //取出长名
	LD	C,31
	LD	DE,g_TagInfoBuf
	CALL	LWRD FS_GetName
	LD	B,0
; 250.	         if (result != 0)
	OR	A
	JR	Z,?0032
?0031:
; 251.	            {
; 252.	                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
; 253.	            }
; 254.	            else
	JR	?0033
?0032:
; 255.	            {
; 256.	                memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
	LD	C,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_amv_vars+31
	LDIR
; 257.	                g_TagInfoBuf[8]=0;
	LD	(g_TagInfoBuf+8),A
; 258.	                g_TagInfoBuf[9]=0; 
	LD	(g_TagInfoBuf+9),A
?0033:
; 259.	            }
; 260.	
; 261.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 262.	}
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
GetInformation:
; 263.	
; 264.	
; 265.	int GetInformation( void )
; 266.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
; 267.	       int result;
; 268.	 
; 269.	         memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
	LD	BC,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_amv_vars+31
	LDIR
; 270.	        result = FS_GetName(g_TagInfoBuf, 32); //取出长名
	LD	C,32
	LD	DE,g_TagInfoBuf
	CALL	LWRD FS_GetName
	LD	B,0
; 271.	        if (result != 0)
	OR	A
	JR	Z,?0035
?0034:
; 272.	        {
; 273.	            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
; 274.	        }
; 275.	        else
	JR	?0036
?0035:
; 276.	        {
; 277.	            memcpy(g_TagInfoBuf, g_amv_vars.location.filename, 12);
	LD	C,12
	LD	DE,g_TagInfoBuf
	LD	HL,g_amv_vars+31
	LDIR
?0036:
; 278.	        }
; 279.	
; 280.	        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
; 281.	        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
; 282.	        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
; 283.	        FS_FClose(fp);
	LD	DE,(fp)
	CALL	LWRD FS_FClose
; 284.	        Totaltime.second=g_fileheadinfo[84];
	LD	A,(g_fileheadinfo+84)
	LD	(Totaltime+2),A
; 285.	        Totaltime.minute=g_fileheadinfo[85];
	LD	A,(g_fileheadinfo+85)
	LD	(Totaltime+1),A
; 286.	        Totaltime.hour=g_fileheadinfo[86];    //小时的低位
	LD	A,(g_fileheadinfo+86)
	LD	(Totaltime),A
; 287.	        output8(0x4e,input8(0x4e)|0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 288.	        return 0;
	LD	HL,0
; 289.	}
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
openPA:
; 290.	
; 291.	
; 292.	
; 293.	//==================================================================
; 294.	void openPA(char volume)
; 295.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
; 296.	        int i;
; 297.	        pa_t paattr;
; 298.	
; 299.	        g_PAOpenFlag = TRUE;//标志PA已打开
	LD	A,1
	LD	(g_PAOpenFlag),A
; 300.	        paattr.pa_in.dacin = 1;
	LD	HL,0
	ADD	HL,SP
	SET	0,(HL)
; 301.	        paattr.pa_in.fmin = 0;
	RES	1,(HL)
; 302.	        paattr.pa_in.linein = 0;
	RES	2,(HL)
; 303.	        paattr.pa_in.micin = 0;
	RES	3,(HL)
; 304.	        paattr.volume = volume;
	INC	HL
	PUSH	HL
	LD	B,E
	POP	HL
	LD	(HL),B
; 305.	        EnablePA(& paattr);
	LD	HL,0
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD EnablePA
; 306.	        SetPAVolume(volume);
	LD	E,B
	CALL	LWRD SetPAVolume
; 307.	}
	POP	HL
	POP	HL
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 308.	//===================================================
; 309.	
; 310.	
; 311.	
	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 + -