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

📄 ui_delete3.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
字号:
	NAME	ui_delete3(17)
	RSEG	COM_CTRL(0)
	RSEG	CONST(0)
	RSEG	IDM_COM_FSL_D(0)
	EXTERN	FS_GetName
	EXTERN	PutS
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	SetBackgdColor
	EXTERN	SetPenColor
	EXTERN	SetTextPos
	PUBLIC	ShowFilelist
	PUBLIC	com_delname
	PUBLIC	delete_text
	EXTERN	fselGetByNO
	EXTERN	menu_pos_list
	PUBLIC	read_idm_data_filelist
	PUBLIC	reinit_idm_buf_filelist
	PUBLIC	show_delete_menu
	EXTERN	ui_popup_list
	EXTERN	unitochar
	PUBLIC	write_idm_data_filelist
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?SS_MOD_L02
	EXTERN	?S_MUL_L02
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	COM_CTRL
write_idm_data_filelist:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        ap common lib file, part 2
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.                             
; 7.	*             All Right Reserved                          
; 8.	*
; 9.	*  $Id: ui_delete3.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
; 10.	*******************************************************************************
; 11.	*/ 
; 12.	#pragma codeseg(COM_CTRL)
; 13.	
; 14.	#include "ap_common.h"
; 15.	#pragma memory=dataseg(IDM_COM_FSL_D)
; 16.	char com_delname[6][50];
; 17.	#pragma memory=default
; 18.	extern const char menu_pos_list[6];
; 19.	extern const WORD menulist_bck_pic[6];
; 20.	const WORD delete_text[2] ={DELENO,DELEYES};
; 21.	
; 22.	//向IDM数组写数据
; 23.	BOOL write_idm_data_filelist(char *name, int count)
; 24.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 25.	     byte status;
; 26.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 27.	     output8(0x05, 0xf6);
	LD	A,246
	OUT	(5),A
; 28.	     memcpy( com_delname[count], name, 50);
	LD	DE,50
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_delname
	ADD	HL,DE
	EX	DE,HL
	LD	HL,2
	ADD	HL,SP
	LD	B,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,B
	LD	BC,50
?0027:
	LDIR
; 29.	     output8(0x05, status);
	LD	L,C
	LD	H,B
	ADD	HL,SP
	LD	A,(HL)
	OUT	(5),A
; 30.	}
	POP	HL
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
reinit_idm_buf_filelist:
; 31.	
; 32.	//取一屏数据到IDM数组中
; 33.	void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id)
; 34.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65472
	ADD	HL,SP
	LD	SP,HL
; 35.	    int i;
; 36.	    char NameNum;
; 37.	    char name_buf[12];
; 38.	    char Longnamebuf[50];
; 39.	    memcpy(name_buf,name_buf,12);
	LD	BC,12
	LD	HL,52
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 40.	    for(i = top; i <= bottom; i++)
	LD	L,(IX-4)
	LD	H,(IX-3)
	PUSH	HL
	POP	IY
?0003:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	OR	128
	SBC	HL,BC
	JP	PO,?0023
	XOR	H
?0023:
	JP	M,?0002
?0004:
; 41.	     {
; 42.	        fselGetByNO(name_buf,i+1);
	INC	BC
	LD	HL,52
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 fselGetByNO
	LD	HL,LWRD fselGetByNO
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 43.	        memcpy(Longnamebuf,name_buf,12);
	LD	BC,12
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 44.	        NameNum=FS_GetName(Longnamebuf,24);
	LD	C,24
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_GetName
; 45.	        if(NameNum!=0)
	OR	A
	JR	Z,?0007
?0006:
; 46.	        {
; 47.	            unitochar(Longnamebuf,NameNum*2+2,string_id);
	LD	L,(IX+8)
	PUSH	HL
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	C,L
	LD	B,H
	INC	BC
	INC	BC
	LD	HL,4
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 unitochar
	LD	HL,LWRD unitochar
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 48.	        }
; 49.	        else
	JR	?0008
?0007:
; 50.	            {
; 51.	             memcpy(Longnamebuf,name_buf,11);    //get one usful record
	LD	BC,11
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	HL,52
	ADD	HL,SP
	LDIR
; 52.	             Longnamebuf[11]=0;
	LD	(IX-55),B
; 53.	             Longnamebuf[12]=0;
	LD	(IX-54),B
?0008:
; 54.	            }
; 55.	
; 56.	        write_idm_data_filelist(Longnamebuf, i - top);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	C,L
	LD	B,H
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 write_idm_data_filelist
	LD	HL,LWRD write_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 57.	
; 58.	    }
; 59.	}
	INC	IY
	JP	LWRD ?0003
?0002:
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
read_idm_data_filelist:
; 60.	
; 61.	//读数据到数组name中
; 62.	void read_idm_data_filelist(char *name, int count)
; 63.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 64.	     byte status;
; 65.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 66.	     output8(0x05 ,0xf6);
	LD	A,246
	OUT	(5),A
; 67.	     memcpy(name, com_delname[count], 50);
	LD	BC,50
	PUSH	DE
	LD	HL,6
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_delname
	ADD	HL,DE
	POP	DE
	JP	LWRD ?0027
; 68.	     output8(0x05, status);
; 69.	}
ShowFilelist:
; 70.	
; 71.	
; 72.	/********************************************************************************
; 73.	* Description : show the directory.
; 74.	*
; 75.	* Arguments  :
; 76.	*            location: get thedisk type
; 77.	*            Invpath: the "\" or name
; 78.	*            Namebuf:the string you will display
; 79.	*            type : show file kind
; 80.	*            string_id: language type
; 81.	* Returns     :
; 82.	*            other:    Successful
; 83.	*            0:    Fail, detail information in fselError
; 84.	* Notes       :  only display the valid directory
; 85.	*
; 86.	********************************************************************************/
; 87.	void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id)
; 88.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65484
	ADD	HL,SP
	LD	SP,HL
; 89.	
; 90.	    int i,tmp;
; 91.	    char        Longnamebuf[50];
; 92.	    // SetAsciiFont(FONT_TYPE_SMALL);
; 93.	    ///-SetTextOutMode(1);
; 94.	
; 95.	 if(Old_active!=active)
	LD	L,(IX+10)
	LD	H,(IX+11)
	LD	C,(IX+8)
	LD	B,(IX+9)
	AND	A
	SBC	HL,BC
	JP	Z,?0010
?0009:
; 96.	  {
; 97.	     //清除旧的活动列表项
; 98.	     tmp=Old_active%6;
	LD	BC,6
	LD	E,(IX+8)
	LD	D,(IX+9)
	CALL	LWRD ?0029
; 99.	     ResShowPic(FILEBCK1, 12, menu_pos_list[tmp]-1);
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,12
	LD	DE,45
	CALL	LWRD ?0030
	POP	AF
; 100.	     ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
	LD	HL,menu_pos_list
	LD	C,(IX-56)
	LD	B,(IX-55)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,2
	LD	E,A
	PUSH	DE
	CALL	LWRD ?0031
	POP	AF
; 101.	     SetTextPos(12, menu_pos_list[tmp]);
	CALL	LWRD ?0033
; 102.	     read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 read_idm_data_filelist
	LD	HL,LWRD read_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 103.	     SetPenColor(Color_BLACK_def);                     //取列表名
	CALL	LWRD ?0035
; 104.	     SetBackgdColor(Color_MENU_def);
	CALL	LWRD SetBackgdColor
; 105.	     PutS(Longnamebuf, -1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 106.	
; 107.	     //显示当前活动项
; 108.	     tmp=active%6;
	LD	BC,6
	LD	E,(IX+10)
	LD	D,(IX+11)
	CALL	LWRD ?0029
; 109.	     ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
	ADD	A,2
	LD	C,A
	PUSH	BC
	LD	C,B
	CALL	LWRD ?0032
	POP	AF
; 110.	     ResShowPic(FILEBCK,  12, menu_pos_list[tmp]-1);
	LD	HL,menu_pos_list
	LD	C,(IX-56)
	LD	B,(IX-55)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	E,A
	PUSH	DE
	LD	C,12
	LD	DE,44
	CALL	LWRD ?0030
	POP	AF
; 111.	     SetTextPos(12, menu_pos_list[tmp]);
	CALL	LWRD ?0033
; 112.	     read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 read_idm_data_filelist
	LD	HL,LWRD read_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 113.	     SetPenColor(Color_WHITE_def);                     //取列表名
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 114.	     SetBackgdColor(0x00003358);
	LD	BC,0
	LD	DE,13144
	CALL	LWRD SetBackgdColor
; 115.	     PutS(Longnamebuf, -1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 116.	  }
; 117.	 else  //if(Old_active==active)               刷新一页屏
	JP	LWRD ?0012
?0010:
; 118.	  {
; 119.	    ///-SetTextOutMode(1);
; 120.	    SetBackgdColor(0x0000df1c);
	LD	C,L
	LD	B,H
	LD	DE,57116
	CALL	LWRD SetBackgdColor
; 121.	    ResShowPic(MENUTWO1,0,0);
	LD	C,0
	PUSH	BC
	LD	DE,196
	CALL	LWRD ?0030
	POP	AF
; 122.	    SetPenColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
; 123.	    ResShowMultiString(CDELFILE,string_id, 255, 1);
	LD	C,1
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IX+12)
	LD	DE,574
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 124.	    SetBackgdColor(Color_MENU_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetBackgdColor
; 125.	    ///-SetTextOutMode(0);
; 126.	    //显示列表名
; 127.	      for(i=top;i<=bottom;i++)
	LD	L,(IX-4)
	LD	H,(IX-3)
	PUSH	HL
	POP	IY
?0013:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	OR	128
	SBC	HL,BC
	JP	PO,?0025
	XOR	H
?0025:
	JP	M,?0012
?0014:
; 128.	      {
; 129.	       tmp=i%6;
	LD	BC,6
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_MOD_L02
	LD	(IX-56),E
	LD	(IX-55),D
; 130.	       if(i==active)
	LD	L,(IX+10)
	LD	H,(IX+11)
	PUSH	IY
	POP	BC
	AND	A
	SBC	HL,BC
	JR	NZ,?0017
?0016:
; 131.	       {
; 132.	                ResShowPic(FILEBCK,  12, menu_pos_list[i-top]-1);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	BC,menu_pos_list
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,12
	LD	DE,44
	CALL	LWRD ?0030
	POP	AF
; 133.	                SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 134.	                SetBackgdColor(0x00003358);
	LD	BC,0
	LD	DE,13144
	JR	?0026
; 135.	       }
; 136.	       else
?0017:
; 137.	       {
; 138.	                                        SetPenColor(Color_BLACK_def);
	CALL	LWRD ?0035
; 139.	                SetBackgdColor(Color_MENU_def);
?0026:
	CALL	LWRD SetBackgdColor
?0018:
; 140.	       }
; 141.	       output8(0x4e,input8(0x4e) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 142.	       read_idm_data_filelist(Longnamebuf,tmp);
	LD	C,(IX-56)
	LD	B,(IX-55)
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	A,BYTE3 read_idm_data_filelist
	LD	HL,LWRD read_idm_data_filelist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 143.	       ResShowPic(MFILE,0,menu_pos_list[i-top]+2);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	DE,menu_pos_list
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,2
	LD	E,A
	PUSH	DE
	CALL	LWRD ?0031
	POP	AF
; 144.	       SetTextPos(12, menu_pos_list[i-top]);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	BC,menu_pos_list
	CALL	LWRD ?0034
; 145.	       PutS(Longnamebuf,-1);
	LD	C,255
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 146.	     }
; 147.	
; 148.	  } //else
	INC	IY
	JP	LWRD ?0013
?0012:
?0011:
; 149.	   SetPenColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
; 150.	}
	JP	LWRD ?0002
?0029:
	CALL	LWRD ?SS_MOD_L02
	LD	(IX-56),E
	LD	(IX-55),D
	LD	HL,menu_pos_list
	ADD	HL,DE
	LD	A,(HL)
	RET
?0031:
	LD	C,0
?0032:
	LD	DE,198
?0030:
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0033:
	LD	HL,menu_pos_list
	LD	C,(IX-56)
	LD	B,(IX-55)
?0034:
	ADD	HL,BC
	LD	C,(HL)
	LD	E,12
	JP	LWRD SetTextPos
?0035:
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
	LD	BC,0
	LD	DE,65535
	RET
show_delete_menu:
; 151.	
; 152.	////////////////////////
; 153.	
; 154.	////////////显示删除确认菜单
; 155.	int show_delete_menu(BYTE string_id)
; 156.	{
	PUSH	BC
	PUSH	IX
	PUSH	DE
	LD	HL,65526
	ADD	HL,SP
	LD	SP,HL
; 157.	    int result;
; 158.	    pop_up_list_t list;
; 159.	    list.strid = delete_text;
	LD	(HL),LOW(delete_text)
	INC	HL
	LD	(HL),HIGH(delete_text)
; 160.	    list.total = 2;
	INC	HL
	LD	(HL),2
	INC	HL
	LD	(HL),0
; 161.	    list.active = 0;
	INC	HL
	XOR	A
	LD	(HL),A
	INC	HL
	LD	(HL),A
; 162.	    list.string_id =string_id;
	INC	HL
	INC	HL
	INC	HL
	PUSH	HL
	LD	B,E
	POP	HL
	LD	(HL),B
; 163.	    list.headid = CDELFILE;
	LD	HL,6
	ADD	HL,SP
	LD	(HL),62
	INC	HL
	LD	(HL),2
; 164.	    result= ui_popup_list(&list, NULL);
	LD	C,A
	PUSH	BC
	LD	L,C
	LD	H,C
	PUSH	HL
	LD	L,4
	ADD	HL,SP
	EX	DE,HL
	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	IX
; 165.	    if((result==0)&&(list.active==0))
	LD	A,L
	OR	H
	JR	NZ,?0020
	LD	HL,4
	ADD	HL,SP
	LD	A,(HL)
	INC	HL
	LD	H,(HL)
	OR	H
	JR	NZ,?0020
?0022:
?0021:
?0019:
; 166.	    {
; 167.	     result=RESULT_IGNORE;
	LD	IX,52
?0020:
; 168.	    }
; 169.	    return result;
	PUSH	IX
	POP	HL
; 170.	}
	EX	DE,HL
	LD	HL,12
	ADD	HL,SP
	LD	SP,HL
	EX	DE,HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
	RSEG	CONST
delete_text:
	DEFW	632
	DEFW	631
	RSEG	IDM_COM_FSL_D
com_delname:
	DEFS	300
	END

⌨️ 快捷键说明

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