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

📄 sub_function1.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
; 187.	
; 188.	    }
	JR	?0060
?0048:
; 189.	
; 190.	   //ClearTimePara();//时间断点参数从0开始
; 191.	    g_reader_vars.location.filename[0] = '\0';//找不到对应文件时要回到目录第一个文件
	XOR	A
	LD	(g_reader_vars+32),A
; 192.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 193.	
; 194.	    result = FSELSetLocation(& g_reader_vars.location);
	LD	DE,g_reader_vars+6
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	BC
; 195.	
; 196.	    if (result != 0)//set 目录
	XOR	A
	OR	C
	JR	Z,?0052
?0051:
; 197.	    {
; 198.	        //找到目录的第一个文件
; 199.	        if (StartFileSelector() == 0)
	LD	A,BYTE3 StartFileSelector
	LD	HL,LWRD StartFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	NZ,?0059
?0053:
; 200.	        {
; 201.	            return 0;
	JR	?0141
; 202.	        }
?0054:
; 203.	    }
; 204.	
; 205.	    else
?0052:
; 206.	    {
; 207.	        // 初始化文件选择器
; 208.	        if (InitFileSelector() == 0)
	LD	A,BYTE3 InitFileSelector
	LD	HL,LWRD InitFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	Z,?0141
?0056:
; 209.	        {
; 210.	            return 0;
; 211.	        }
?0057:
; 212.	        //找到目录的第一个文件
; 213.	        if (StartFileSelector() == 0)
	LD	A,BYTE3 StartFileSelector
	LD	HL,LWRD StartFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	NZ,?0059
?0058:
; 214.	        {
; 215.	            return 0;
?0141:
	LD	HL,0
; 216.	        }
	JR	?0060
?0059:
?0055:
; 217.	    }
; 218.	
; 219.	    output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 220.	}
?0060:
	POP	AF
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
StartFileSelector:
; 221.	
; 222.	
; 223.	
; 224.	/******************************************************************************
; 225.	** 名字:
; 226.	** 接口:
; 227.	** 描述:
; 228.	** 输入参数:
; 229.	** 输出参数:
; 230.	** 使用说明: //注,这函数是在初始化完文件选择器或set 完目录后调用的
; 231.	********************************************************************************/
; 232.	int StartFileSelector(void)
; 233.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
; 234.	    int result;
; 235.	
; 236.	    if (g_reader_vars.location.disk == 'C')
	LD	A,(g_reader_vars+6)
	CP	67
	LD	DE,g_reader_vars+32
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	JR	NZ,?0062
?0061:
; 237.	    {
; 238.	        if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JP	NZ,?0186
?0063:
; 239.	        {
; 240.	            return 1;
; 241.	        }
?0064:
; 242.	
; 243.	        if (FSELGetErrID() == 0)
	CALL	LWRD ?0196
	INC	L
	DEC	L
	JP	Z,?0106
?0065:
; 244.	        {
; 245.	            return 0;//非法
; 246.	        }
?0066:
; 247.	        //再查一次,因为可能这目录前面还有文件
; 248.	        if (InitFileSelector() == 0)
	LD	A,BYTE3 InitFileSelector
	LD	HL,LWRD InitFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JP	Z,?0106
?0067:
; 249.	        {
; 250.	            return 0;
; 251.	        }
?0068:
; 252.	        if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?0194
	INC	L
	DEC	L
	JP	NZ,?0186
?0069:
; 253.	        {
; 254.	            return 1;
; 255.	        }
?0070:
; 256.	
; 257.	        if (FSELGetErrID() == 0)
	CALL	LWRD ?0196
	INC	L
	DEC	L
	JP	Z,?0106
?0071:
; 258.	        {
; 259.	            return 0;//非法
; 260.	        }
?0072:
; 261.	
; 262.	        if (g_reader_vars.location.disk == 'H')
	LD	A,(g_reader_vars+6)
	CP	72
	JR	Z,?0187
?0073:
; 263.	        {
; 264.	            DisplayErrInfor(CFILEOUT);//显示卡无文件
; 265.	            return 0; //因为前面已从 'C' 查到 'H' 了,已查完,未找到文件
; 266.	        }
?0074:
; 267.	        else //还在 'C'
; 268.	        {
; 269.	            DisplayErrInfor(DFILEOUT);//显示磁盘无文件
	CALL	LWRD ?0198
; 270.	
; 271.	            //检测 sd 卡是否存在
; 272.	            if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JP	NZ,?0106
	LD	A,(g_DiskStateFlag)
	BIT	3,A
	JP	Z,?0106
?0078:
?0077:
?0075:
; 273.	            {//有卡
; 274.	                g_reader_vars.location.disk = 'H';
	LD	A,72
	LD	(g_reader_vars+6),A
; 275.	                if (FSELInit(FSEL_TYPE_TXT, FSEL_ALL_SEQUENCE,  FSEL_TYPE_COMMONDIR, 'H'))
	LD	C,A
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0195
	POP	AF
	POP	AF
	INC	L
	DEC	L
	JR	Z,?0082
?0079:
; 276.	                {
; 277.	                    if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?0194
	INC	L
	DEC	L
	JR	NZ,?0186
?0081:
; 278.	                    {
; 279.	                        return 1;
; 280.	                    }
?0082:
?0080:
; 281.	                }
; 282.	                result = FSELGetErrID();
	CALL	LWRD ?0196
; 283.	                if (FSELGetErrID() != 0)
	CALL	LWRD ?0196
	INC	L
	DEC	L
	JR	Z,?0106
?0083:
; 284.	                {
; 285.	                    DisplayErrInfor(CFILEOUT);//显示卡无文件
?0187:
	LD	DE,629
	JR	?0191
; 286.	                    return 0;
; 287.	                }
?0084:
; 288.	                return 0;//非法
; 289.	            }
?0076:
; 290.	            else
; 291.	            {
; 292.	                return 0;//没卡退出
; 293.	            }
; 294.	        }
; 295.	        return 0;
; 296.	    }
?0062:
; 297.	    else //g_reader_vars.location.disk == 'H'
; 298.	    {
; 299.	        if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0186
?0085:
; 300.	        {
; 301.	            return 1;//找到文件
; 302.	        }
?0086:
; 303.	
; 304.	        if (FSELGetErrID() == 0)
	CALL	LWRD ?0196
	INC	L
	DEC	L
	JR	Z,?0106
?0087:
; 305.	        {
; 306.	            return 0;//非法
; 307.	        }
?0088:
; 308.	
; 309.	        //再查一次,因为可能这目录前面还有文件(虽然后面已无文件)
; 310.	        if (InitFileSelector() == 0)
	LD	A,BYTE3 InitFileSelector
	LD	HL,LWRD InitFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	Z,?0106
?0089:
; 311.	        {
; 312.	            return 0;
; 313.	        }
?0090:
; 314.	
; 315.	        if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?0194
	INC	L
	DEC	L
	JR	NZ,?0186
?0091:
; 316.	        {
; 317.	            return 1;//找到文件
; 318.	        }
?0092:
; 319.	
; 320.	        if (FSELGetErrID() == 0)
	CALL	LWRD ?0196
	INC	L
	DEC	L
	JR	Z,?0106
?0093:
; 321.	        {
; 322.	            return 0;//非法
; 323.	        }
?0094:
; 324.	
; 325.	        if (g_reader_vars.location.disk == 'C')
	LD	A,(g_reader_vars+6)
	CP	67
	JR	Z,?0193
?0095:
; 326.	        {
; 327.	            DisplayErrInfor(DFILEOUT);//显示磁盘无文件
; 328.	            return 0; //因为前面已从 'H' 查到 'C' 了,已查完,未找到文件
; 329.	        }
?0096:
; 330.	        DisplayErrInfor(CFILEOUT);//显示卡无文件
	LD	DE,629
	CALL	LWRD ?0197
; 331.	
; 332.	        g_reader_vars.location.disk = 'C';
	LD	A,67
	LD	(g_reader_vars+6),A
; 333.	        if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
	LD	A,(g_DiskStateFlag)
	BIT	7,A
	JR	Z,?0106
?0097:
; 334.	        {
; 335.	            return 0;
; 336.	        }
?0098:
; 337.	
; 338.	        if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
	BIT	6,A
	JR	Z,?0100
?0099:
; 339.	        {
; 340.	            DisplayErrInfor(DFILEOUT);//显示磁盘无文件
?0193:
	LD	DE,628
?0191:
	CALL	LWRD ?0197
; 341.	            return 0;
	JR	?0106
; 342.	        }
?0100:
; 343.	
; 344.	        if (FSELInit(FSEL_TYPE_TXT, FSEL_ALL_SEQUENCE,  FSEL_TYPE_COMMONDIR, 'C'))
	LD	C,67
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0195
	POP	AF
	POP	AF
	INC	L
	DEC	L
	JR	Z,?0104
?0101:
; 345.	        {
; 346.	            if (FSELGetNext(g_reader_vars.location.filename) != 0)
	CALL	LWRD ?0194
	INC	L
	DEC	L
	JR	Z,?0104
?0103:
; 347.	            {
; 348.	                return 1;//找到文件
?0186:
	LD	HL,1
; 349.	            }
	JR	?0107
?0104:
?0102:
; 350.	        }
; 351.	        result = FSELGetErrID();
	CALL	LWRD ?0196
; 352.	
; 353.	        if (result != 0)
	LD	A,L
	OR	A
	JR	Z,?0106
?0105:
; 354.	        {
; 355.	            DisplayErrInfor(DFILEOUT);//显示磁盘无文件
	CALL	LWRD ?0198
; 356.	            g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
	LD	HL,g_DiskStateFlag
	SET	6,(HL)
; 357.	            return 0;//
; 358.	        }
?0106:
; 359.	        return 0;
	LD	HL,0
; 360.	    }
?0107:
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0194:
	LD	DE,g_reader_vars+32
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	JP	LWRD ?BANK_CALL_DIRECT_L08
; 361.	}
; 362.	
; 363.	
; 364.	/*
; 365.	// error information defines in file selector
; 366.	#define FSEL_ERR_OUTOF          1
; 367.	#define FSEL_ERR_EMPTY          2
; 368.	#define FSEL_ERR_SETDIR         3
; 369.	#define FSEL_ERR_SETFILE        4
; 370.	#define FSEL_ERR_EXCEPTION      5
; 371.	
; 372.	
; 373.	#define FSEL_ERR_FS             20
; 374.	#define FSEL_ERR_FAIL           21
; 375.	#define FSEL_ERR_DISK           22
; 376.	#define FSEL_ERR_PLAYLIST       23
; 377.	*/
; 378.	
; 379.	/*
; 380.	//error information display
; 381.	1) 磁盘错  : 在 main.c 中已报
; 382.	2) 卡错    : 在 main.c 中已报
; 383.	
; 384.	3) 磁盘无文件
; 385.	4) 卡无文件
; 386.	
; 387.	5) 空间满    :在 ui_follow.c 文件中已报
; 388.	7) 目录已满     :在 ui_follow.c 文件中已报
; 389.	
; 390.	6) 电量不足!:
; 391.	8) 格式错误
; 392.	9) 卡已拔出
; 393.	
; 394.	*/
	END

⌨️ 快捷键说明

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