ui_delete2.s01

来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 969 行 · 第 1/2 页

S01
969
字号
	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	?SS_CMP_L02
	EXTERN	?S_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_LEAVE_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?ENT_PARM_DIRECT_L09
	EXTERN	?ENT_AUTO_DIRECT_L09
	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.	{
	CALL	LWRD ?ENT_PARM_DIRECT_L09
; 25.	    ResShowMultiString(CDELFAIL,langid,16,32);        //删除失败界面显示
	LD	C,32
	PUSH	BC
	LD	C,16
	PUSH	BC
	LD	C,E
	LD	DE,507
	CALL	LWRD ?0087
	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.	}
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0087:
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	JP	LWRD ?BANK_CALL_DIRECT_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.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65510
	PUSH	IY
; 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	DE,65535
	ADD	HL,DE
	PUSH	HL
	POP	IY
; 48.	
; 49.	    cur_grouplist=filelist_active/6;
	LD	BC,6
	EX	DE,HL
	CALL	LWRD ?0090
; 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-18),L
	LD	(IX-17),H
; 53.	    bottom=top+5;
	LD	HL,5
	LD	C,(IX-22)
	LD	B,(IX-21)
; 54.	    if(bottom>filetotal-1)
	CALL	LWRD ?0091
	JR	NC,?0003
?0002:
; 55.	       bottom=filetotal-1;
	LD	(IX-20),L
	LD	(IX-19),H
?0003:
; 56.	   reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX+4)
	PUSH	HL
	CALL	LWRD ?0095
	POP	HL
; 57.	   ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	CALL	LWRD ?0093
	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);
?0083:
	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-18)
	LD	B,(IX-17)
	DEC	BC
	PUSH	IY
	POP	HL
	CALL	LWRD ?SS_CMP_L02
	JR	NC,?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-24)
	LD	H,(IX-23)
	AND	A
	SBC	HL,DE
	JR	NZ,?0015
?0014:
; 74.	                 {
; 75.	                      ShowFilelist(top,bottom,filelist_active-1,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	POP	HL
	DEC	HL
	PUSH	HL
	JR	?0079
; 76.	                 }
; 77.	                 else
?0015:
; 78.	                 {
; 79.	                      cur_grouplist=cur_grouplist+1;
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,1
	LD	(HL),A
	JR	NC,?0078
	INC	HL
	INC	(HL)
?0078:
; 80.	                      top=(filelist_active/6)*6; //顶的序号
	CALL	LWRD ?0089
; 81.	                      bottom=top+5;                  //底的序号
; 82.	                      if(bottom>(filetotal-1))
	CALL	LWRD ?0092
	JR	NC,?0018
?0017:
; 83.	                        bottom=filetotal-1;
	LD	(IX-20),L
	LD	(IX-19),H
?0018:
; 84.	                      reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX+4)
	PUSH	HL
	CALL	LWRD ?0095
	POP	HL
; 85.	                      ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
?0079:
	JR	?0084
?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-22),A
	LD	(IX-21),A
	LD	(IX-24),A
	LD	(IX-23),A
	LD	(IX-20),5
	LD	(IX-19),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;
	LD	L,(IX-18)
	LD	H,(IX-17)
	DEC	HL
	LD	(IX-20),L
	LD	(IX-19),H
?0021:
; 97.	             reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	L,(IX+4)
	PUSH	HL
	CALL	LWRD ?0095
	POP	HL
; 98.	             ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
?0084:
	CALL	LWRD ?0093
	POP	HL
	POP	HL
	POP	HL
?0019:
?0023:
; 99.	         }
; 100.	           while(ap_get_message()!=0) {;}      //丢掉多余按键
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0019
?0024:
; 101.	            break;
?0022:
	JP	LWRD ?0008
?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
	CALL	LWRD ?SS_CMP_L02
	JR	NC,?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-24)
	LD	H,(IX-23)
	AND	A
	SBC	HL,DE
	JR	NZ,?0029
?0028:
; 109.	                  {
; 110.	                    ShowFilelist(top,bottom,filelist_active+1,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
	POP	HL
	INC	HL
	PUSH	HL
	JR	?0080
; 111.	                  }
; 112.	                 else
?0029:
; 113.	                    {
; 114.	                       cur_grouplist=cur_grouplist-1;
	LD	HL,4
	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 ?0089
; 116.	                       bottom=top+5;          //底的序号
; 117.	                       reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	C,(IX+4)
	PUSH	BC
	LD	C,L
	LD	B,H
	CALL	LWRD ?0096
	POP	HL
; 118.	                       ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	PUSH	IY
	PUSH	IY
?0080:
	CALL	LWRD ?0093
	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-18)
	LD	D,(IX-17)
	DEC	DE
	LD	BC,6
	CALL	LWRD ?0090
; 125.	             top=cur_grouplist*6;
; 126.	             bottom=filetotal-1;
	LD	C,(IX-18)
	LD	B,(IX-17)
	DEC	BC
	LD	(IX-20),C
	LD	(IX-19),B
; 127.	             filelist_active=bottom;
; 128.	             reinit_idm_buf_filelist(top, bottom, string_id);       //换页要重新初始化IDM数据
	LD	E,(IX+4)
	PUSH	DE
	EX	DE,HL
	CALL	LWRD ?0097
	POP	HL
; 129.	             ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
	LD	L,(IX+4)
	PUSH	HL
	LD	L,(IX-20)
	LD	H,(IX-19)
	PUSH	HL
	PUSH	HL
	LD	C,L
	LD	B,H
	CALL	LWRD ?0094
	POP	HL
	POP	HL
	POP	HL
	LD	L,(IX-20)
	LD	H,(IX-19)
	PUSH	HL
	POP	IY
?0031:
?0033:
; 130.	            }
; 131.	           while(ap_get_message()!=0) {;}      //丢掉多余按键
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0031
?0034:
; 132.	            break;
?0032:
	JP	LWRD ?0008
?0035:
; 133.	
; 134.	        case AP_KEY_PLAY | AP_KEY_UP:
; 135.	            FSELSetLocation(location);
	LD	E,(IX+2)
	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
; 137.	            break;
?0036:
; 138.	
; 139.	        case AP_KEY_MODE | AP_KEY_UP:
; 140.	            //YES时按下MODE键的处理
; 141.	            {
; 142.	              bool result;

⌨️ 快捷键说明

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