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

📄 sub_function2.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	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 + -