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

📄 ui_delete2.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	ui_delete2(17)
	RSEG	COM_CTRL(0)
	RSEG	CSTR(0)
	EXTERN	FS_CD
	EXTERN	FS_GetName
	EXTERN	FS_SetCurDir
	EXTERN	GetDCStatus
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	SetBackgdColor
	EXTERN	SetPenColor
	EXTERN	ShowFilelist
	EXTERN	UpdateScreen
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	EXTERN	ap_message_init
	EXTERN	ap_sleep
	PUBLIC	draw_del_dir
	PUBLIC	draw_del_file
	EXTERN	fselDelFile
	EXTERN	fselGetByNO
	EXTERN	fselGetLocation
	EXTERN	fselGetNo
	EXTERN	fselGetTotal
	EXTERN	fselSetLocation
	EXTERN	reinit_idm_buf_filelist
	PUBLIC	show_del_fail
	EXTERN	show_delete_menu
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?SS_DIV_L02
	EXTERN	?S_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?MEMSET_L11
	RSEG	COM_CTRL
show_del_fail:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        ap common lib, file/folder delete control file
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.
; 7.	*             All Right Reserved
; 8.	*
; 9.	*******************************************************************************
; 10.	*/
; 11.	#pragma codeseg(COM_CTRL)
; 12.	
; 13.	#include "ap_common.h"
; 14.	#include "enhanced.h"
; 15.	void show_del_fail(BYTE langid);
; 16.	int draw_del_file(file_location_t *location, BYTE string_id);
; 17.	void draw_del_dir(file_location_t *location, BYTE string_id);
; 18.	void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id);
; 19.	void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id);
; 20.	int show_delete_menu(BYTE string_id);
; 21.	
; 22.	
; 23.	void show_del_fail(BYTE langid)
; 24.	{
	PUSH	BC
	PUSH	DE
; 25.	    ResShowMultiString(CDELFAIL,langid,16,32);        //删除失败界面显示
	LD	C,32
	PUSH	BC
	LD	C,16
	PUSH	BC
	LD	C,E
	LD	DE,507
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 26.	    UpdateScreen(NULL);
	LD	DE,0
	CALL	LWRD UpdateScreen
; 27.	    ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 28.	}
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
draw_del_file:
; 29.	
; 30.	/********************************************************************************
; 31.	* Description : draw the selector file of the selector directory.
; 32.	*
; 33.	* Arguments  : location  :keep the file selector parament
; 34.	               string_id :display language type
; 35.	* Returns     :
; 36.	*            other:    Successful
; 37.	*            0:    Fail, detail information in fselError
; 38.	* Notes       :
; 39.	*
; 40.	********************************************************************************/
; 41.	int draw_del_file(file_location_t *location, BYTE string_id)
; 42.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65510
	ADD	HL,SP
	LD	SP,HL
; 43.	   int   filelist_active,cur_grouplist;    //目录总数,文件总数和浏览项数,浏览活动项
; 44.	   int top, bottom,filetotal;
; 45.	    char name[12];
; 46.	    int key;
; 47.	    filelist_active= FSELGetNo()-1;
	LD	A,BYTE3 fselGetNo
	LD	HL,LWRD fselGetNo
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,65535
	ADD	HL,BC
	PUSH	HL
	POP	IY
; 48.	
; 49.	    cur_grouplist=filelist_active/6;
	LD	BC,6
	EX	DE,HL
	CALL	LWRD ?0095
; 50.	    top=cur_grouplist*6; //顶的序号
; 51.	
; 52.	    filetotal=fselGetTotal();
	LD	A,BYTE3 fselGetTotal
	LD	HL,LWRD fselGetTotal
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-22),L
	LD	(IX-21),H
; 53.	    bottom=top+5;
	LD	HL,5
	LD	C,(IX-26)
	LD	B,(IX-25)
	ADD	HL,BC
	LD	(IX-24),L
	LD	(IX-23),H
; 54.	    if(bottom>filetotal-1)
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	C,(IX-24)
	LD	B,(IX-23)
	OR	128
	SBC	HL,BC
	JP	PO,?0078
	XOR	H
?0078:
	JP	P,?0003
?0002:
; 55.	       bottom=filetotal-1;
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
?0003:
; 56.	   reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX-2)
	PUSH	HL
	CALL	LWRD ?0098
	POP	HL
; 57.	   ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	CALL	LWRD ?0096
	POP	HL
	POP	HL
	POP	HL
?0005:
; 58.	     while(ap_get_message()!=0) {;}      //丢掉多余按键
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0005
?0006:
?0004:
; 59.	   ap_message_init(NULL);
?0088:
	LD	DE,0
	LD	A,BYTE3 ap_message_init
	LD	HL,LWRD ap_message_init
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0008:
; 60.	    while(1)
; 61.	    {
; 62.	        //handle msg
; 63.	        key = ap_get_message();
	CALL	LWRD ap_get_message
	LD	C,A
	LD	E,C
	LD	B,0
; 64.	        switch(key)
	LD	D,B
	CALL	LWRD ?S_V_SWITCH_L06
	DEFW	9
	DEFW	5
	DEFW	6
	DEFW	30
	DEFW	33
	DEFW	48
	DEFW	55
	DEFW	56
	DEFW	69
	DEFW	70
	DEFW	?0059
	DEFW	?0011
	DEFW	?0025
	DEFW	?0008
	DEFW	?0055
	DEFW	?0036
	DEFW	?0035
	DEFW	?0052
	DEFW	?0011
	DEFW	?0025
?0011:
; 65.	        {
; 66.	        case AP_KEY_NEXT:
; 67.	        case AP_KEY_NEXT | AP_KEY_HOLD:
; 68.	
; 69.	          if(filelist_active<filetotal -1 )  //当前项小于总列表数
	LD	C,(IX-22)
	LD	B,(IX-21)
	DEC	BC
	PUSH	IY
	POP	HL
	OR	128
	SBC	HL,BC
	JP	PO,?0079
	XOR	H
?0079:
	JP	P,?0013
?0012:
; 70.	          {
; 71.	
; 72.	                 filelist_active++;
; 73.	                 if(filelist_active/6==cur_grouplist)
	LD	BC,6
	INC	IY
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_DIV_L02
	LD	L,(IX-28)
	LD	H,(IX-27)
	AND	A
	SBC	HL,DE
	JR	NZ,?0015
?0014:
; 74.	                 {
; 75.	                      ShowFilelist(top,bottom,filelist_active-1,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	POP	HL
	DEC	HL
	PUSH	HL
	JR	?0089
; 76.	                 }
; 77.	                 else
?0015:
; 78.	                 {
; 79.	                      cur_grouplist=cur_grouplist+1;
	LD	HL,2
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,1
	LD	(HL),A
	JR	NC,?0080
	INC	HL
	INC	(HL)
?0080:
; 80.	                      top=(filelist_active/6)*6; //顶的序号
	CALL	LWRD ?0094
; 81.	                      bottom=top+5;                  //底的序号
; 82.	                      if(bottom>(filetotal-1))
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	C,(IX-24)
	LD	B,(IX-23)
	OR	128
	SBC	HL,BC
	JP	PO,?0081
	XOR	H
?0081:
	JP	P,?0021
?0017:
; 83.	                        bottom=filetotal-1;
	JR	?0091
?0018:
; 84.	                      reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
; 85.	                      ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
?0016:
; 86.	                 }
; 87.	
; 88.	         }
; 89.	         else
?0013:
; 90.	         {
; 91.	             filelist_active=0;
; 92.	             top=0;
; 93.	             cur_grouplist=0;
; 94.	             bottom=5;                  //底的序号
; 95.	             if(bottom>(filetotal-1))
	LD	IY,0
	XOR	A
	LD	(IX-26),A
	LD	(IX-25),A
	LD	(IX-28),A
	LD	(IX-27),A
	LD	(IX-24),5
	LD	(IX-23),A
	LD	L,C
	LD	H,B
	LD	BC,32773
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0021
?0020:
; 96.	             bottom=filetotal-1;
?0091:
	LD	L,(IX-22)
	LD	H,(IX-21)
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
?0021:
; 97.	             reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX-2)
	PUSH	HL
	CALL	LWRD ?0098
	POP	HL
; 98.	             ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
?0089:
	CALL	LWRD ?0096
	POP	HL
	POP	HL
	POP	HL
?0019:
?0023:
; 99.	         }
; 100.	           while(ap_get_message()!=0) {;}      //丢掉多余按键
	CALL	LWRD ap_get_message
	OR	A
	JP	Z,?0008
?0024:
; 101.	            break;
	JR	?0019
?0022:
?0025:
; 102.	
; 103.	        case AP_KEY_PREV:
; 104.	        case AP_KEY_PREV | AP_KEY_HOLD :
; 105.	           if(filelist_active >0)
	PUSH	IY
	POP	BC
	LD	L,D
	LD	H,D
	OR	128
	SBC	HL,BC
	JP	PO,?0082
	XOR	H
?0082:
	JP	P,?0027
?0026:
; 106.	              {
; 107.	                  filelist_active--;
; 108.	                if(filelist_active/6==cur_grouplist)
	LD	BC,6
	DEC	IY
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_DIV_L02
	LD	L,(IX-28)
	LD	H,(IX-27)
	AND	A
	SBC	HL,DE
	JR	NZ,?0029
?0028:
; 109.	                  {
; 110.	                    ShowFilelist(top,bottom,filelist_active+1,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	POP	HL
	INC	HL
	PUSH	HL
	JR	?0085
; 111.	                  }
; 112.	                 else
?0029:
; 113.	                    {
; 114.	                       cur_grouplist=cur_grouplist-1;
	LD	HL,2
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,255
	LD	(HL),A
	INC	HL
	LD	A,(HL)
	ADC	A,255
	LD	(HL),A
; 115.	                       top=(filelist_active/6)*6; //顶的序号
	CALL	LWRD ?0094
; 116.	                       bottom=top+5;          //底的序号
; 117.	                       reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	C,(IX-2)
	PUSH	BC
	LD	C,L
	LD	B,H
	CALL	LWRD ?0099
	POP	HL
; 118.	                       ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	PUSH	IY
	PUSH	IY
?0085:
	CALL	LWRD ?0096
	POP	HL
	POP	HL
	POP	HL
?0030:
; 119.	                    }
; 120.	             }
; 121.	
; 122.	          else
	JR	?0031
?0027:
; 123.	            {
; 124.	             cur_grouplist=(filetotal-1)/6;
	LD	E,(IX-22)
	LD	D,(IX-21)
	DEC	DE
	LD	BC,6
	CALL	LWRD ?0095
; 125.	             top=cur_grouplist*6;
; 126.	             bottom=filetotal-1;
	LD	C,(IX-22)
	LD	B,(IX-21)
	DEC	BC
	LD	(IX-24),C
	LD	(IX-23),B
; 127.	             filelist_active=bottom;
; 128.	             reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	E,(IX-2)
	PUSH	DE
	EX	DE,HL
	CALL	LWRD ?0100
	POP	HL
; 129.	             ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX-2)
	PUSH	HL
	LD	L,(IX-24)
	LD	H,(IX-23)
	PUSH	HL
	PUSH	HL
	LD	C,L
	LD	B,H
	CALL	LWRD ?0097
	POP	HL
	POP	HL
	POP	HL
	LD	L,(IX-24)
	LD	H,(IX-23)
	PUSH	HL
	POP	IY
?0031:
?0033:
; 130.	            }
; 131.	           while(ap_get_message()!=0) {;}      //丢掉多余按键
	CALL	LWRD ap_get_message
	OR	A
	JP	Z,?0008
?0034:
; 132.	            break;
	JR	?0031
?0032:
?0035:
; 133.	
; 134.	        case AP_KEY_PLAY | AP_KEY_UP:
; 135.	            FSELSetLocation(location);
	LD	E,(IX-4)
	LD	D,(IX-3)
	LD	A,BYTE3 fselSetLocation
	LD	HL,LWRD fselSetLocation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 136.	            return RESULT_IGNORE;
	JP	LWRD ?0054

⌨️ 快捷键说明

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