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

📄 sub_ui_stop.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
字号:
	NAME	sub_ui_stop(17)
	RSEG	CODE_1(0)
	RSEG	COM_FSL(0)
	EXTERN	FS_GetName
	EXTERN	PutS
	EXTERN	ResShowPic
	EXTERN	SetBackgdColor
	EXTERN	SetPenColor
	EXTERN	SetTextPos
	PUBLIC	com_fname
	EXTERN	fileName
	EXTERN	file_name
	EXTERN	fselGetByNO
	EXTERN	menu_pos
	PUBLIC	read_idm_data_reader
	PUBLIC	reinit_idm_buf_reader
	PUBLIC	reset_cur_list_bg_color_reader
	PUBLIC	show_active_list_reader
	EXTERN	unitochar
	PUBLIC	write_idm_data_reader
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?SS_MOD_L02
	EXTERN	?S_MUL_L02
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	EXTERN	?STRCPY_L11
	RSEG	CODE_1
write_idm_data_reader:
; 1.	
; 2.	
; 3.	#include "ap_common.h"
; 4.	#include "ap_reader.h"
; 5.	
; 6.	
; 7.	#pragma codeseg(CODE_1)      
; 8.	
; 9.	#pragma memory=dataseg(COM_FSL)
; 10.	char com_fname[explorer_row_count_def][50];  
; 11.	#pragma memory=default
; 12.	extern char fileName[50];
; 13.	
; 14.	
; 15.	BOOL write_idm_data_reader(char *name, int count)
; 16.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 17.	     byte status; 
; 18.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 19.	     output8(0x05, 0xf6);
	LD	A,246
	OUT	(5),A
; 20.	     memcpy( com_fname[count], name, 50);
	LD	DE,50
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_fname
	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
?0013:
	LDIR
; 21.	     output8(0x05, status); 
	LD	L,C
	LD	H,B
	ADD	HL,SP
	LD	A,(HL)
	OUT	(5),A
; 22.	}
	POP	HL
	POP	HL
	POP	HL
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0014:
	LD	(HL),A
	LD	A,246
	OUT	(5),A
	LD	BC,50
	PUSH	IX
	POP	DE
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_fname
	ADD	HL,DE
	EX	DE,HL
	LD	HL,fileName
	CALL	LWRD ?STRCPY_L11
	LD	L,B
	LD	H,B
	RET
reinit_idm_buf_reader:
; 23.	
; 24.	/*
; 25.	********************************************************************************
; 26.	* Description : 重新初始化IDM数据区
; 27.	*
; 28.	* Arguments   :
; 29.	*
; 30.	* Returns     : 
; 31.	*
; 32.	* Notes       :dir: 0:select file , 1: select dir 
; 33.	*        
; 34.	********************************************************************************
; 35.	*/
; 36.	void reinit_idm_buf_reader(int top, int bottom, int dir, int string_id)
; 37.	{
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65484
	ADD	HL,SP
	LD	SP,HL
; 38.	    int i,NameNum;
; 39.	    char Longnamebuf[50];
; 40.	     
; 41.	    for(i = top; i <= bottom; i++)
	PUSH	DE
	POP	IY
?0003:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	OR	128
	SBC	HL,BC
	JP	PO,?0009
	XOR	H
?0009:
	JP	M,?0002
?0004:
; 42.	    { 
; 43.	        fselGetByNO(file_name, i + 1); 
	CALL	LWRD ?0015
; 44.	
; 45.	        memcpy(Longnamebuf,file_name,12);
	LD	BC,12
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	LD	HL,file_name
	LDIR
; 46.	        NameNum = FS_GetName(Longnamebuf,24);                    //获取当前目录名的长文件名  
	LD	C,24
	LD	HL,2
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_GetName
	LD	C,A
	LD	B,0
; 47.	        if(NameNum!=0)
	LD	A,C
	OR	A
	JR	Z,?0007
?0006:
; 48.	        {
; 49.	            unitochar(Longnamebuf,NameNum*2+2,string_id);   //
	LD	L,(IX+10)
	PUSH	HL
	LD	L,C
	LD	H,B
	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
; 50.	            write_idm_data_reader(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
	JR	?0010
; 51.	        }
; 52.	        else
?0007:
; 53.	            write_idm_data_reader(file_name, i - top);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	SBC	HL,BC
	LD	C,L
	LD	B,H
	LD	DE,file_name
?0010:
	LD	A,BYTE3 write_idm_data_reader
	LD	HL,LWRD write_idm_data_reader
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0008:
; 54.	                        
; 55.	    }
; 56.	} 
	INC	IY
	JR	?0003
?0002:
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0015:
	INC	BC
	LD	DE,file_name
	LD	A,BYTE3 fselGetByNO
	LD	HL,LWRD fselGetByNO
	JP	LWRD ?BANK_CALL_DIRECT_L08
show_active_list_reader:
; 57.	
; 58.	/*
; 59.	********************************************************************************
; 60.	* Description : 反转上次活动项和当前活动项.
; 61.	*
; 62.	* Arguments   :
; 63.	*
; 64.	* Returns     : 
; 65.	*
; 66.	* Notes       : 
; 67.	*        
; 68.	********************************************************************************
; 69.	*/
; 70.	void show_active_list_reader(int old_active, int active, int top)
; 71.	{
	PUSH	IY
	PUSH	IX
	PUSH	DE
	PUSH	AF
	PUSH	BC
	POP	IY
; 72.	        byte status;   
; 73.	        int tmp;
; 74.	
; 75.	        tmp = old_active%6;
	LD	BC,6
	CALL	LWRD ?SS_MOD_L02
	PUSH	DE
	POP	IX
; 76.	        ResShowPic(MENUBCK1, 0, menu_pos[tmp]-1);
	LD	HL,menu_pos
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,B
	LD	DE,181
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 77.	        SetPenColor(Color_BLACK_def);
	LD	BC,0
	LD	E,C
	LD	D,B
	CALL	LWRD SetPenColor
; 78.	        SetBackgdColor(Color_MENU_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetBackgdColor
; 79.	        SetTextPos(0, menu_pos[tmp]); 
	LD	HL,menu_pos
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	C,(HL)
	LD	E,0
	CALL	LWRD SetTextPos
; 80.	        status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
; 81.	        output8(0x05 ,0xf6);
; 82.	        strcpy(fileName, com_fname[tmp]);
	CALL	LWRD ?0014
; 83.	        output8(0x05, status); 
	ADD	HL,SP
	LD	A,(HL)
	OUT	(5),A
; 84.	        PutS(fileName, -1); 
	LD	C,255
	LD	DE,fileName
	CALL	LWRD PutS
; 85.	        
; 86.	        tmp = active%6;
	LD	BC,6
	PUSH	IY
	POP	DE
	CALL	LWRD ?SS_MOD_L02
	PUSH	DE
	POP	IX
; 87.	        ResShowPic(MENUBCK, 0, menu_pos[tmp]-1);
	LD	HL,menu_pos
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,B
	LD	DE,180
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 88.	        SetTextPos(0, menu_pos[tmp]);
	LD	HL,menu_pos
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	C,(HL)
	LD	E,0
	CALL	LWRD SetTextPos
; 89.	        status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
; 90.	        output8(0x05 ,0xf6);
; 91.	        strcpy(fileName, com_fname[tmp]);
	CALL	LWRD ?0014
; 92.	        output8(0x05, status);
	ADD	HL,SP
	LD	A,(HL)
	OUT	(5),A
; 93.	        SetPenColor(Color_WHITE_def);
	LD	C,B
	LD	DE,65535
	CALL	LWRD SetPenColor
; 94.	        SetBackgdColor(0x00003358);
	LD	BC,0
	LD	DE,13144
	CALL	LWRD SetBackgdColor
; 95.	        PutS(fileName, -1);
	LD	C,255
	LD	DE,fileName
	CALL	LWRD PutS
; 96.	        fselGetByNO(file_name, active + 1);
	PUSH	IY
	POP	BC
	CALL	LWRD ?0015
; 97.	}
	POP	HL
	POP	HL
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
read_idm_data_reader:
; 98.	
; 99.	
; 100.	
; 101.	void read_idm_data_reader(char *name, int count)
; 102.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
; 103.	     byte status;
; 104.	     
; 105.	     status = input8(0x05);
	IN	A,(5)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 106.	     output8(0x05 ,0xf6);
	LD	A,246
	OUT	(5),A
; 107.	     memcpy(name, com_fname[count], 30);
	LD	BC,30
	PUSH	DE
	LD	C,50
	LD	HL,6
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?S_MUL_L02
	LD	HL,com_fname
	ADD	HL,DE
	POP	DE
	LD	C,30
	JP	LWRD ?0013
; 108.	     output8(0x05, status);
; 109.	}   
reset_cur_list_bg_color_reader:
; 110.	
; 111.	void reset_cur_list_bg_color_reader(int i, int pos)
; 112.	{
	PUSH	IX
	PUSH	BC
	PUSH	DE
	POP	IX
; 113.	        SetTextPos(0, pos);
	LD	E,0
	CALL	LWRD SetTextPos
; 114.	        read_idm_data_reader(fileName, i);
	PUSH	IX
	POP	BC
	LD	DE,fileName
	LD	A,BYTE3 read_idm_data_reader
	LD	HL,LWRD read_idm_data_reader
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 115.	        PutS(fileName, -1);
	LD	C,255
	LD	DE,fileName
	CALL	LWRD PutS
; 116.	        fselGetByNO(file_name, i + 1);
	PUSH	IX
	POP	BC
	CALL	LWRD ?0015
; 117.	}
	POP	HL
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
	RSEG	COM_FSL
com_fname:
	DEFS	250
	END

⌨️ 快捷键说明

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