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

📄 ui_directory2_scroll.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 3 页
字号:
	CALL	LWRD ?US_MOD_L02
	LD	(IX-8),E
	LD	(IX-7),D
; 180.	       TransOneRecord(&temp_record,&OnePageRecord[tmp]);    //将idm中记录数据读取到temp_record中
	LD	C,75
	CALL	LWRD ?0110
; 181.	       ResShowPic(FILEBCK,  explorer_str_x_def-1, menu_pos_list[tmp]-4);
	LD	HL,menu_pos_list
	LD	C,(IX-8)
	LD	B,(IX-7)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,31
	LD	DE,44
	CALL	LWRD ?0108
	POP	AF
; 182.	       if(temp_record.filetype==TYPE_FILE)
	LD	A,(temp_record)
	DEC	A
	JR	NZ,?0016
?0015:
; 183.	            ResShowPic(MFILE,13,menu_pos_list[tmp]-1);
	LD	HL,menu_pos_list
	LD	C,(IX-8)
	LD	B,(IX-7)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,13
	LD	DE,198
	JR	?0089
?0016:
; 184.	       else if(temp_record.filetype==TYPE_DIR)
	LD	A,(temp_record)
	OR	A
	JR	NZ,?0019
?0018:
; 185.	       {
; 186.	                ResShowPic(MDIR,10,menu_pos_list[tmp]-4);
	LD	HL,menu_pos_list
	LD	C,(IX-8)
	LD	B,(IX-7)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,10
	LD	DE,175
?0089:
	CALL	LWRD ?0108
	POP	AF
?0019:
?0017:
; 187.	       }
; 188.	       ResShowPic(DHTHK,194, menu_pos_list[tmp]+5);
	LD	HL,menu_pos_list
	LD	C,(IX-8)
	LD	B,(IX-7)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,5
	LD	E,A
	PUSH	DE
	LD	C,194
	LD	DE,39
	CALL	LWRD ?0108
	POP	AF
; 189.	       region_scroll.y = menu_pos_list[tmp]-2;     
	LD	HL,menu_pos_list
	LD	C,(IX-8)
	LD	B,(IX-7)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,254
	LD	(region_scroll+1),A
; 190.	       memcpy(scroll_buf,temp_record.longname,31);        //取要滚动的数据到buf 截取31 bytes    
	LD	BC,31
	LD	DE,scroll_buf
	LD	HL,temp_record+25
	LDIR
; 191.	       scroll_buf[31]=0;                        
	XOR	A
	LD	(scroll_buf+31),A
; 192.	       ScrollString(scroll_buf,TRUE,string_id,&region_scroll);   
	LD	HL,region_scroll
	PUSH	HL
	LD	L,(IX+12)
	PUSH	HL
	CALL	LWRD ?0107
	POP	HL
	POP	HL
; 193.	       if(strlen(scroll_buf)<20)
	LD	HL,scroll_buf
	CALL	LWRD ?STRLEN_L11
	LD	BC,20
	AND	A
	SBC	HL,BC
	JP	NC,?0044
?0020:
; 194.	         ScrollFlag=0;
	JP	LWRD ?0097
; 195.	       else
?0021:
; 196.	         ScrollFlag=1;   
?0022:
; 197.	   }
; 198.	   
; 199.	    else    //if(Old_active==active)        //新旧活动项相同表示是新的一屏数据,需要全部刷新
?0009:
; 200.	    {
; 201.	        SetTextOutMode(1);
	LD	E,1
	CALL	LWRD SetTextOutMode
; 202.	        ResShowPic(MENUTWO,0,0); 
	LD	C,0
	PUSH	BC
	LD	DE,195
	CALL	LWRD ?0108
	POP	AF
; 203.	        ResShowPic(DHT,194,8); 
	LD	C,8
	PUSH	BC
	CALL	LWRD ?0109
	POP	AF
; 204.	        if(!Disk)                  //主盘目录
	XOR	A
	OR	(IX+14)
	LD	C,148
	PUSH	BC
	LD	C,22
	PUSH	BC
	LD	C,(IX+12)
	JR	NZ,?0025
?0024:
; 205.	         ResShowMultiString( VSTOPM1,string_id, list_str_x_def, list_str_y_def);  
	LD	DE,633
	JR	?0091
; 206.	        else  
?0025:
; 207.	          ResShowMultiString( VSTOPM2,string_id, list_str_x_def, list_str_y_def); 
	LD	DE,634
?0091:
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
?0026:
; 208.	        for(i=top;i<=bottom;i++)
	LD	L,(IX-4)
	LD	H,(IX-3)
	PUSH	HL
	POP	IY
?0028:
	PUSH	IY
	POP	BC
	LD	L,(IX-2)
	LD	H,(IX-1)
	AND	A
	SBC	HL,BC
	JP	C,?0027
?0029:
; 209.	        {
; 210.	          output8(0x4e,input8(0x4e) | 0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 211.	          TransOneRecord(&temp_record,&OnePageRecord[i-top]);    //将idm中记录数据读取到temp_record中   
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	SBC	HL,BC
	LD	C,L
	LD	B,H
	LD	DE,75
	CALL	LWRD ?0110
; 212.	          if(i==active)
	LD	L,(IX+10)
	LD	H,(IX+11)
	PUSH	IY
	POP	BC
	AND	A
	SBC	HL,BC
	JP	NZ,?0032
?0031:
; 213.	          {
; 214.	            ResShowPic(FILEBCK,  explorer_str_x_def-1, menu_pos_list[i-top]-4);
	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,252
	LD	E,A
	PUSH	DE
	LD	C,31
	LD	DE,44
	CALL	LWRD ?0108
	POP	AF
; 215.	            ResShowPic(DHTHK,194, menu_pos_list[i-top]+5);
	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,5
	LD	E,A
	PUSH	DE
	LD	C,194
	LD	DE,39
	CALL	LWRD ?0108
	POP	AF
; 216.	            region_scroll.y= menu_pos_list[i-top]-2;  
	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,254
	LD	(region_scroll+1),A
; 217.	            memcpy(scroll_buf,temp_record.longname,31); 
	LD	BC,31
	LD	DE,scroll_buf
	LD	HL,temp_record+25
	LDIR
; 218.	            scroll_buf[31] = 0;     
	XOR	A
	LD	(scroll_buf+31),A
; 219.	            if(temp_record.filetype==TYPE_FILE)
	LD	A,(temp_record)
	DEC	A
	JR	NZ,?0034
?0033:
; 220.	                ResShowPic(MFILE,13,menu_pos_list[i-top]-1);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	SBC	HL,BC
	LD	BC,menu_pos_list
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,13
	LD	DE,198
	JR	?0092
?0034:
; 221.	            else if(temp_record.filetype==TYPE_DIR)
	LD	A,(temp_record)
	OR	A
	JR	NZ,?0030
?0036:
; 222.	                    ResShowPic(MDIR,10,menu_pos_list[i-top]-4); 
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	SBC	HL,BC
	LD	BC,menu_pos_list
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,10
	LD	DE,175
?0092:
	CALL	LWRD ?0108
	POP	AF
?0037:
?0035:
; 223.	            continue;
	JR	?0030
?0032:
; 224.	          }
; 225.	          else
; 226.	          {
; 227.	            if(temp_record.filetype==TYPE_FILE)
	LD	A,(temp_record)
	DEC	A
	JR	NZ,?0039
?0038:
; 228.	                ResShowPic(MFILE,13,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,13
	LD	DE,198
	JR	?0093
?0039:
; 229.	            else if(temp_record.filetype==TYPE_DIR)
	LD	A,(temp_record)
	OR	A
	JR	NZ,?0042
?0041:
; 230.	                    ResShowPic(MDIR,10,menu_pos_list[i-top]-4); 
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	SBC	HL,BC
	LD	BC,menu_pos_list
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,10
	LD	DE,175
?0093:
	CALL	LWRD ?0108
	POP	AF
?0042:
?0040:
; 231.	          }          
; 232.	            SetTextPos(explorer_str_x_def, menu_pos_list[i-top]-2);
	LD	C,(IX-4)
	LD	B,(IX-3)
	PUSH	IY
	POP	HL
	AND	A
	SBC	HL,BC
	LD	BC,menu_pos_list
	CALL	LWRD ?0111
; 233.	          DisplayBytes =Count_Byte(temp_record.longname,string_id);                           
; 234.	          PutS(temp_record.longname,DisplayBytes);
?0030:
	INC	IY
	JP	LWRD ?0028
?0027:
; 235.	        } // for 
; 236.	         ScrollString(scroll_buf, TRUE,string_id,&region_scroll);
	LD	HL,region_scroll
	PUSH	HL
	LD	L,(IX+12)
	PUSH	HL
	CALL	LWRD ?0107
	POP	HL
	POP	HL
; 237.	         if(strlen(scroll_buf)<20)
	LD	HL,scroll_buf
	CALL	LWRD ?STRLEN_L11
	LD	BC,20
	AND	A
	SBC	HL,BC
	JR	NC,?0044
?0043:
; 238.	            ScrollFlag=0;
?0097:
	XOR	A
	JR	?0094
; 239.	         else
?0044:
; 240.	            ScrollFlag=1;         
	LD	A,1
?0094:
	LD	(ScrollFlag),A
?0045:
?0023:
?0007:
; 241.	    }
; 242.	  }   //else scrollflag = 0
; 243.	}
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0107:
	LD	C,1
?0106:
	LD	DE,scroll_buf
	LD	A,BYTE3 ScrollString
	LD	HL,LWRD ScrollString
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0109:
	LD	C,194
	LD	DE,38
?0108:
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0110:
	CALL	LWRD ?S_MUL_L02
	LD	HL,OnePageRecord
	ADD	HL,DE
	LD	C,L
	LD	B,H
	LD	DE,temp_record
	LD	A,BYTE3 TransOneRecord
	LD	HL,LWRD TransOneRecord
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	RET
?0111:
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,254
	LD	C,A
	LD	E,32
	CALL	LWRD SetTextPos
	LD	C,(IX+12)
	LD	DE,temp_record+25
	LD	A,BYTE3 Count_Byte
	LD	HL,LWRD Count_Byte
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	C,L
	LD	DE,temp_record+25
	CALL	LWRD PutS
	RET
init_dir_buf:
; 244.	
; 245.	
; 246.	//********************************************************************************
; 247.	//* Description :建立快速查询表,目录更新时需要重新调用此函数
; 248.	//*
; 249.	//** Arguments  :
; 250.	//*
; 251.	//* Returns     :
; 252.	//*
; 253.	//* Notes       :
; 254.	//*
; 255.	//********************************************************************************
; 256.	void init_dir_buf(void)
; 257.	{
	PUSH	BC
	PUSH	DE
	PUSH	IY
	PUSH	IX
	LD	HL,65500
	ADD	HL,SP
	LD	SP,HL
; 258.	    WORD i, tmp, total;
; 259.	    char Backbuf[32];
; 260.	    BOOL direxist;
; 261.	
; 262.	    Initdirbuf();    //清除目录检索表
	LD	A,BYTE3 Initdirbuf
	LD	HL,LWRD Initdirbuf
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 263.	    tmp = 1;
; 264.	
; 265.	    FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
	LD	HL,0
	PUSH	HL
	LD	C,2
	LD	L,6
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD FS_Backup
	POP	HL
; 266.	    dir_total_num=count_dir_num();
	LD	A,BYTE3 count_dir_num
	LD	HL,LWRD count_dir_num
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(dir_total_num),HL
; 267.	    file_total_num=GetFileTotalCur(FALSE);
	LD	E,0
	LD	A,BYTE3 GetFileTotalCur
	LD	HL,LWRD GetFileTotalCur
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(file_total_num),HL
; 268.	    list_total_num=dir_total_num+file_total_num+1;
	LD	BC,(dir_total_num)
	ADD	HL,BC
	INC	HL
	LD	(list_total_num),HL
; 269.	    fselTotal=file_total_num;
	LD	HL,(file_total_num)
	LD	(fselTotal),HL
; 270.	
; 271.	    for(i = 1; i <= dir_total_num; i++)
	LD	IX,1
	LD	HL,0
	ADD	HL,SP
	LD	(HL),1
	INC	HL

⌨️ 快捷键说明

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