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

📄 sub_function2.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	sub_function2(17)
	RSEG	APC_SUB_FUN(0)
	RSEG	CSTR(0)
	RSEG	UDATA0(0)
	RSEG	APD_SUB_FUN(0)
	PUBLIC	CheckMusicType
	PUBLIC	ClearTimePara
	PUBLIC	DUMP_TEST
	PUBLIC	DealErrCase
	EXTERN	EnableDAC
	EXTERN	EnablePA
	EXTERN	FS_Backup
	EXTERN	FS_CD
	EXTERN	FS_FClose
	EXTERN	FS_FOpen
	EXTERN	FS_FRead
	EXTERN	FS_FSeek
	EXTERN	FS_GetName
	EXTERN	FS_Restore
	EXTERN	GetDefaultComval
	PUBLIC	GetInformation
	PUBLIC	GetInformation1
	PUBLIC	MY_DUMP
	EXTERN	PutS
	EXTERN	ResClose
	EXTERN	SetPAVolume
	EXTERN	SetTextPos
	EXTERN	Totaltime
	EXTERN	UpdateScreen
	EXTERN	VMRead
	EXTERN	ap_get_message
	EXTERN	ap_message_init
	EXTERN	ap_sleep
	EXTERN	dir_name
	PUBLIC	fp
	EXTERN	fselGetErrID
	EXTERN	fselGetLocation
	EXTERN	g_BatteryType
	EXTERN	g_PAOpenFlag
	EXTERN	g_Resfp_Sav
	EXTERN	g_TagInfoBuf
	EXTERN	g_amv_vars
	EXTERN	g_comval
	PUBLIC	g_fileheadinfo
	EXTERN	g_langid
	EXTERN	itoa4
	PUBLIC	make_dirname
	PUBLIC	openDAC
	PUBLIC	openPA
	PUBLIC	read_var
	EXTERN	ui_show_msg
	EXTERN	unitochar
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?STRCPY_L11
	RSEG	APC_SUB_FUN
MY_DUMP:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        This program demostrates how to build an AP
; 5.	*
; 6.	*        (c) Copyright Actions Co,Ld.
; 7.	*
; 8.	*  $Id: sub_function2.c,v 1.1.1.1 2006/05/22 03:24:02 selina Exp $
; 9.	*******************************************************************************
; 10.	*/
; 11.	#include "ap_amv.h"
; 12.	
; 13.	#pragma codeseg(APC_SUB_FUN)
; 14.	
; 15.	#pragma memory=constseg(APD_SUB_FUN)
; 16.	char g_fileheadinfo[512]; //get file first sector data
; 17.	#pragma memory=default
; 18.	
; 19.	extern SD_FILE* g_Resfp_Sav;
; 20.	extern bool ActiveDriveOK;
; 21.	handle fp;
; 22.	
; 23.	extern byte fselDirNo[8];
; 24.	extern word fselFileNo;
; 25.	
; 26.	void MY_DUMP(char *string, int value)
; 27.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
	PUSH	AF
; 28.	    char dump_buf[6];
; 29.	        dump_buf[0] = ',';
	LD	HL,0
	ADD	HL,SP
	LD	(HL),44
; 30.	        SetTextPos(0, 16);
	LD	C,16
	LD	E,0
	CALL	LWRD SetTextPos
; 31.	        PutS((string), -1);
	LD	C,255
	LD	HL,6
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD PutS
; 32.	        itoa4((value), &dump_buf[1]);
	LD	HL,0
	ADD	HL,SP
	LD	BC,1
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	HL,8
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 itoa4
	LD	HL,LWRD itoa4
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 33.	        dump_buf[5] = '>';
	LD	HL,5
	ADD	HL,SP
	LD	(HL),62
; 34.	
; 35.	        PutS(dump_buf, 6);
	LD	C,6
	LD	HL,0
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 36.	        UpdateScreen(NULL);
	LD	DE,0
	CALL	LWRD UpdateScreen
?0003:
; 37.	        while( ap_get_message() != (AP_KEY_PLAY| AP_KEY_UP)) {;}
	CALL	LWRD ap_get_message
	CP	33
	JR	NZ,?0003
?0004:
; 38.	}
?0002:
	LD	HL,10
	ADD	HL,SP
	LD	SP,HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
DUMP_TEST:
; 39.	
; 40.	void DUMP_TEST(char *string)
; 41.	{
	PUSH	BC
	PUSH	IX
	LD	HL,65524
	ADD	HL,SP
	LD	SP,HL
	PUSH	DE
	POP	IX
; 42.	    char str[9];
; 43.	    char i;
; 44.	    for(i = 0; i<8;i++)
	LD	(HL),0
?0006:
	LD	A,(HL)
	CP	8
	JR	NC,?0005
?0007:
; 45.	    {
; 46.	        str[i] = string[i] + 0x30;
	LD	C,A
	LD	B,0
	PUSH	IX
	POP	HL
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,48
	LD	HL,2
	ADD	HL,SP
	ADD	HL,BC
	LD	(HL),A
	LD	L,B
	LD	H,B
	ADD	HL,SP
	INC	(HL)
	JR	?0006
?0005:
; 47.	        }
; 48.	        str[8] = 0;
	LD	HL,10
	ADD	HL,SP
	LD	(HL),0
; 49.	        SetTextPos(0, 16);
	LD	C,16
	LD	E,0
	CALL	LWRD SetTextPos
; 50.	        PutS((str), -1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 51.	        UpdateScreen(NULL);
	LD	DE,0
	CALL	LWRD UpdateScreen
?0010:
; 52.	        while( ap_get_message() != (AP_KEY_PLAY| AP_KEY_UP)) {;}
	CALL	LWRD ap_get_message
	CP	33
	JR	NZ,?0010
?0011:
; 53.	}
?0009:
	LD	HL,12
	ADD	HL,SP
	LD	SP,HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
CheckMusicType:
; 54.	/*
; 55.	********************************************************************************
; 56.	*             Music_type_t CheckMusicType(char *filename)
; 57.	*
; 58.	* Description : 检测当前是哪种类型的MUSIC文件
; 59.	*
; 60.	* Arguments   : char *filename  文件名
; 61.	*
; 62.	* Returns     : Music_type_t 文件类型
; 63.	*
; 64.	* Notes       :
; 65.	*
; 66.	********************************************************************************
; 67.	*/
; 68.	Music_type_t CheckMusicType( char * filename )
; 69.	{
	PUSH	DE
; 70.	
; 71.	}
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
make_dirname:
; 72.	
; 73.	/*
; 74.	********************************************************************************
; 75.	*             void make_dirname(void)
; 76.	*
; 77.	* Description : 读系统变量和ap局部变量
; 78.	*
; 79.	* Arguments   : void
; 80.	*
; 81.	* Returns     : void
; 82.	*
; 83.	* Notes       :
; 84.	*
; 85.	********************************************************************************
; 86.	*/
; 87.	void make_dirname(void)
; 88.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
	LD	HL,65504
	ADD	HL,SP
	LD	SP,HL
; 89.	    int result;
; 90.	    char Backbuf[32];
; 91.	    fselGetLocation(&g_amv_vars.location);
	LD	DE,g_amv_vars+5
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 92.	    if(g_amv_vars.location.path[0]==':')
	LD	A,(g_amv_vars+19)
	CP	58
	JR	NZ,?0013
?0012:
; 93.	        {
; 94.	            strcpy(dir_name,"ROOT");
	LD	DE,?0014
	LD	HL,dir_name
	CALL	LWRD ?STRCPY_L11
; 95.	        }
; 96.	    else
	JR	?0015
?0013:
; 97.	        {
; 98.	
; 99.	        FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
	LD	HL,0
	PUSH	HL
	LD	C,2
	INC	HL
	INC	HL
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Backup
	POP	HL
; 100.	
; 101.	       dir_name[0] = ':';
	LD	A,58
	LD	(dir_name),A
; 102.	            FS_CD(dir_name);
	LD	DE,dir_name
	CALL	LWRD FS_CD
; 103.	        memcpy(dir_name, g_amv_vars.location.path, 12);
	LD	BC,12
	LD	DE,dir_name
	LD	HL,g_amv_vars+19
	LDIR
; 104.	            result = FS_GetName(dir_name, 14); //取出长名
	LD	C,14
	LD	DE,dir_name
	CALL	LWRD FS_GetName
	LD	B,0
; 105.	            if (result != 0)
	OR	A
	JR	Z,?0017
?0016:
; 106.	            {
; 107.	                unitochar(dir_name, sizeof(dir_name), g_langid);
	LD	A,(g_langid)
	LD	C,A
	PUSH	BC
	LD	C,30
	LD	DE,dir_name
	LD	A,BYTE3 unitochar
	LD	HL,LWRD unitochar
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 108.	            }
; 109.	            else
	JR	?0018
?0017:
; 110.	            {
; 111.	                memcpy(dir_name, g_amv_vars.location.path, 12);
	LD	C,12
	LD	DE,dir_name
	LD	HL,g_amv_vars+19
	LDIR
; 112.	                dir_name[8]=0;
	LD	(dir_name+8),A
; 113.	                dir_name[9]=0;
	LD	(dir_name+9),A
?0018:
; 114.	            }
; 115.	            FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
	LD	HL,0
	PUSH	HL
	LD	C,2
	INC	HL
	INC	HL
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Restore
	POP	HL
?0015:
; 116.	        }
; 117.	
; 118.	
; 119.	}
	LD	HL,32
	ADD	HL,SP
	LD	SP,HL
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
read_var:
; 120.	
; 121.	void read_var( void )
; 122.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
; 123.	        int result;
; 124.	        //comval_t g_comval; //系统变量,ap不能更改
; 125.	
; 126.	
; 127.	        //read comval
; 128.	        result = VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
	LD	HL,32
	PUSH	HL
	LD	BC,512
	LD	DE,g_comval
	CALL	LWRD VMRead
	POP	HL
; 129.	        ASSERT(result);
; 130.	
; 131.	        //check if valid
; 132.	        if (g_comval.magic != MAGIC_COMVAL)
	LD	HL,57005
	LD	BC,(g_comval)
	AND	A
	SBC	HL,BC
	JR	Z,?0020
?0019:
; 133.	        {
; 134.	            GetDefaultComval(&g_comval);
	LD	DE,g_comval
	CALL	LWRD GetDefaultComval
?0020:
; 135.	        }
; 136.	
; 137.	        g_langid = g_comval.langid;//记录系统语言
	LD	A,(g_comval+12)
	LD	(g_langid),A
; 138.	        g_BatteryType = g_comval.BatteryType;//记录电池类型
	LD	A,(g_comval+15)
	LD	(g_BatteryType),A
; 139.	
; 140.	        ap_message_init(& g_comval);
	LD	DE,g_comval
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 141.	
; 142.	        //read ap vars
; 143.	        result = VMRead(& g_amv_vars, VM_AP_AMV, sizeof(g_amv_vars));
	LD	HL,54
	PUSH	HL
	LD	BC,18432
	LD	DE,g_amv_vars
	CALL	LWRD VMRead
	POP	HL
; 144.	        ASSERT(result);
; 145.	
; 146.	    //check if valid
; 147.	    if (g_amv_vars.magic != MAGIC_AMV)
	LD	HL,24941
	LD	BC,(g_amv_vars)
	AND	A
	SBC	HL,BC
	JR	Z,?0022
?0021:
; 148.	    {
; 149.	
; 150.	        g_amv_vars.magic = MAGIC_AMV;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -