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

📄 ui_stop.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
字号:
	NAME	ui_stop(17)
	RSEG	AP_UI_STP(0)
	RSEG	CONST(0)
	RSEG	UDATA0(0)
	EXTERN	DRV_DetectUD
	PUBLIC	MenuStrID
	PUBLIC	MenuStrIDWithCard
	EXTERN	ap_get_message
	EXTERN	ap_message_init
	EXTERN	fselGetLocation
	EXTERN	fselGetNextFile
	EXTERN	fselInit
	EXTERN	fselSetLocation
	EXTERN	g_browser_vars
	EXTERN	g_comval
	EXTERN	g_langid
	PUBLIC	list
	EXTERN	ui_directory
	EXTERN	ui_err_msg
	EXTERN	ui_popup_list
	EXTERN	ui_show_msg
	PUBLIC	ui_stop
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	AP_UI_STP
ui_stop:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        This program demostrates how to build an AP
; 5.	*
; 6.	*        (c) Copyright Actions Co,Ld.
; 7.	*
; 8.	*  $Id: ui_stop.c,v 1.1.1.1 2006/04/21 08:22:43 selina Exp $
; 9.	*******************************************************************************
; 10.	*/
; 11.	#include "ap_browser.h"   
; 12.	extern comval_t g_comval; //系统变量,ap不能更改 
; 13.	extern bool ActiveDriveOK;  
; 14.	const WORD  MenuStrID[2]={MSTOP1,MSTOP5};//,VSTOPM4};
; 15.	const WORD  MenuStrIDWithCard[3]={MSTOP1,MSTOP2,MSTOP5};
; 16.	pop_up_list_t list;     //define menu 
; 17.	
; 18.	//======================================================================================
; 19.	//RESULT_CURR_UI: 还要处在当前界面
; 20.	//RESULT_UI_STOP: 到UI_STOP界面(因现在就是UI_STOP界面,所以同上)
; 21.	//RESULT_LAST_UI: 到上一级界面
; 22.	//--------------------------------------------------------------------------------------
; 23.	#pragma codeseg(AP_UI_STP)
; 24.	
; 25.	int ui_stop(void)
; 26.	{          
	PUSH	BC
	PUSH	DE
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	AF
	PUSH	AF
; 27.	    int result,card_init;
; 28.	    bool  g_card_ok=FALSE;
; 29.	    bool  g_card_out=FALSE;   
	LD	(IX-4),0
	LD	(IX-3),0
?0003:
; 30.	while(1)
; 31.	 {  
; 32.	    ap_message_init(NULL);//开始算STANDBY 时间
	LD	DE,0
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 33.	    //result = DRV_DetectUD(1);  //检查是否有卡
; 34.	    if(DRV_DetectUD(1) == 0x20)
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	NZ,?0006
?0005:
; 35.	        g_card_ok = TRUE;    
	LD	(IX-4),1
?0006:
; 36.	                 
; 37.	    list.active=0;
	LD	HL,0
	LD	(list+4),HL
; 38.	    if(g_card_ok)
	XOR	A
	OR	(IX-4)
	JR	Z,?0008
?0007:
; 39.	    {
; 40.	        list.total = 3;
	LD	L,3
	LD	(list+2),HL
; 41.	        list.strid = MenuStrIDWithCard;
	LD	HL,MenuStrIDWithCard
	JR	?0041
; 42.	    }
; 43.	   
; 44.	    else
?0008:
; 45.	    {
; 46.	         list.total=2;
	INC	HL
	INC	HL
	LD	(list+2),HL
; 47.	         list.strid=MenuStrID;
	LD	HL,MenuStrID
?0041:
	LD	(list),HL
?0009:
; 48.	     }
; 49.	     
; 50.	     list.string_id = g_comval.langid;
	LD	A,(g_comval+12)
	LD	(list+8),A
; 51.	     list.headid=BROWSER;
	LD	HL,396
	LD	(list+6),HL
; 52.	     
; 53.	     result=ui_popup_list(&list, NULL);
	LD	C,0
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	DE,list
	LD	A,BYTE3 ui_popup_list
	LD	HL,LWRD ui_popup_list
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	PUSH	HL
	POP	IY
; 54.	     
; 55.	     if (g_card_ok && list.active==1)
	XOR	A
	OR	(IX-4)
	JR	Z,?0015
	LD	HL,(list+4)
	LD	A,1
	XOR	L
	OR	H
	JR	NZ,?0015
?0013:
?0012:
?0010:
; 56.	     {
; 57.	          if (DRV_DetectUD(1) != 0x20)
	LD	E,1
	CALL	LWRD DRV_DetectUD
	CP	32
	JR	Z,?0015
?0014:
; 58.	           {
; 59.	             g_card_out=TRUE;
; 60.	             ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
	LD	BC,(g_comval+12)
	LD	B,0
	PUSH	BC
	LD	BC,394
	LD	E,C
	LD	D,B
	LD	A,BYTE3 ui_err_msg
	LD	HL,LWRD ui_err_msg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(IX-3),1
?0015:
?0011:
; 61.	             //g_browser_vars.location.disk = 'C';
; 62.	            }
; 63.	     }
; 64.	     
; 65.	   
; 66.	    if (result != 0)
	PUSH	IY
	POP	HL
	LD	A,L
	OR	H
	JP	NZ,?0040
?0016:
; 67.	        return result;
?0017:
; 68.	   if(list.active == 0)
	LD	HL,(list+4)
	LD	A,L
	OR	H
	JR	NZ,?0019
?0018:
; 69.	   {
; 70.	         if(g_browser_vars.location.disk == 'H')
	LD	A,(g_browser_vars+2)
	CP	72
	JR	NZ,?0036
?0020:
; 71.	      { 
; 72.	       g_browser_vars.location.disk = 'C';
	JR	?0043
; 73.	    //   g_browser_vars.location.filename[0]='\0';
; 74.	       FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);         
?0021:
?0019:
; 75.	      }             
; 76.	       } 
; 77.	   else if((list.active == 1) && (g_card_ok == TRUE))
	LD	A,1
	XOR	L
	OR	H
	JR	NZ,?0024
	LD	B,(IX-4)
	DEC	B
	JR	NZ,?0024
?0026:
?0025:
?0023:
; 78.	    {
; 79.	         if(g_browser_vars.location.disk == 'C')
	LD	A,(g_browser_vars+2)
	CP	67
	JR	NZ,?0028
?0027:
; 80.	         { 
; 81.	          g_browser_vars.location.disk = 'H';
	LD	A,72
	LD	(g_browser_vars+2),A
; 82.	         // g_browser_vars.location.filename[0]='\0';
; 83.	          card_init = FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);
	LD	C,A
	PUSH	BC
	LD	C,B
	PUSH	BC
	LD	C,4
	LD	E,6
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
	LD	H,0
	LD	(IX-2),L
	LD	(IX-1),H
?0028:
; 84.	         }  
; 85.	       if((card_init==0) || (g_card_out==TRUE))  //卡初始化不成功或者卡被拔出
	LD	A,(IX-2)
	OR	(IX-1)
	JR	Z,?0031
	LD	B,(IX-3)
	DEC	B
	JR	NZ,?0036
?0031:
?0032:
?0029:
; 86.	       {
; 87.	         ui_show_msg (CREADERR, CREADERR, g_comval.langid);        //temp ybfu
	LD	BC,(g_comval+12)
	LD	B,0
	PUSH	BC
	LD	BC,630
	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
?0034:
; 88.	         while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确 
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0034
?0035:
?0033:
; 89.	         g_browser_vars.location.disk = 'C';
?0043:
	LD	A,67
	LD	(g_browser_vars+2),A
; 90.	      //   g_browser_vars.location.filename[0]='\0';     
; 91.	         FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk);                   
	LD	C,A
	PUSH	BC
	LD	C,0
	PUSH	BC
	LD	C,4
	LD	E,6
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
?0030:
; 92.	       }                               
; 93.	   }
; 94.	   else  
	JR	?0036
?0024:
; 95.	      return RESULT_MAIN;             
	LD	HL,10
	JR	?0040
?0036:
?0022:
; 96.	    //如是初始化到根目录下时要调用 FSELGetNext() 来选中第一首
; 97.	    if (g_browser_vars.location.path[0]==':')
	LD	A,(g_browser_vars+16)
	CP	58
	JR	NZ,?0038
?0037:
; 98.	    {
; 99.	        FSELGetNext(g_browser_vars.location.filename);
	LD	DE,g_browser_vars+28
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
	JR	?0042
; 100.	    }  
; 101.	   else   
?0038:
; 102.	    fselSetLocation(& g_browser_vars.location);     
	LD	DE,g_browser_vars+2
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
?0042:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0039:
; 103.	    fselGetLocation(& g_browser_vars.location);     
	LD	DE,g_browser_vars+2
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 104.	    result = ui_directory(&g_browser_vars.location, FSEL_TYPE_ALL, g_langid); 
	LD	A,(g_langid)
	LD	C,A
	PUSH	BC
	LD	C,6
	LD	DE,g_browser_vars+2
	LD	A,BYTE3 ui_directory
	LD	HL,LWRD ui_directory
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 105.	     return result;     
; 106.	}         
?0040:
	LD	SP,IX
	POP	IX
	POP	IY
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 107.	}
; 108.	
; 109.	        
; 110.	
; 111.	
	RSEG	CONST
MenuStrID:
	DEFW	461
	DEFW	465
MenuStrIDWithCard:
	DEFW	461
	DEFW	462
	DEFW	465
	RSEG	UDATA0
list:
	DEFS	9
	END

⌨️ 快捷键说明

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