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

📄 splc501sys.lst

📁 电子词典的设计开发
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	//Filename : _pixel
                            	//Function : display appoint pixel
                            	//Input    : x,y
                            	//Output   : display a appoint pixel on lcd
                            	//Destroy  : R1,r2,r3
                            	////////////////////////////////////////////////////////////////////////////// 	
                            	.external		pixel_page
                            	.external		pixel_column
                            	.external		pixel_bit
                            	.external		TAB_pixel	
                            	.public	_pixel 
                            	_pixel:  .proc
0000834D 88 DA              			PUSH BP,BP TO [SP];
0000834E 00 9B              			bp=sp
0000834F 44 0A              			bp+=0x04
00008350 C5 92              			r1=[bp]
00008351 41 0A              			bp+=0x01
00008352 C5 94              			r2=[bp]
                            	F_pixel: 		
00008353 19 D3 0F 06        			[pixel_column]=r1			//work out column
00008355 40 92              			r1=0x00
00008356 19 D3 0E 06        			[pixel_page]=r1
                            	F_pixel_2:	
00008358 48 44              			cmp	r2,0x08
00008359 09 0E              			jb	F_pixel_1
0000835A 48 44              			cmp	r2,0x08
0000835B 07 5E              			je	F_pixel_1
0000835C 48 24              			r2-=0x08
0000835D 11 93 0E 06        			r1=[pixel_page]
0000835F 41 02              			r1+=0x01
00008360 19 D3 0E 06        			[pixel_page]=r1
00008362 4B EE              			jmp F_pixel_2
                            	F_pixel_1:	
00008363 09 93 08 83        			r1=TAB_pixel
00008365 02 03              			r1+=r2
00008366 C1 94              			r2=[r1]
00008367 1A D5 10 06        			[pixel_bit]=r2				//work out pixel_bit,pixel_page
                            	//		R1 = [pixel_page]               
                            	//        CALL    F_Set_LCD_Page_No
                            	//        R2 = [pixel_column]                
                            	//        CALL    F_Set_LCD_Column_Addr
00008369 11 93 0E 06        			r1=[pixel_page]                   
0000836B 19 D3 82 06        			[_page]=r1
0000836D 11 93 0F 06        			r1=[pixel_column]
0000836F 19 D3 83 06        	        [_page_place]=r1    
00008371 13 97 10 06        	        r3=[pixel_bit]
00008373 1B D7 89 06        	        [_point_value]=r3
00008375 40 F0 BD 88        	        call	display_a_point
00008377 13 97 6A 06        	        r3=[sign]
00008379 41 B6              	        r3&=0x01
0000837A 01 4E              	        jnz	F_pixel_end
0000837B 88 98              	        POP BP,BP FROM [SP]
                            	F_pixel_end:
0000837C 13 97 6A 06        			r3=[sign]
0000837E 0B B7 FE FF        	        r3&=0xfffe
00008380 1B D7 6A 06        	        [sign]=r3		
00008382 90 9A              			retf
                            	        .endp
                            	//////////////////////////////////////////////////////////////////////////////  
                            	//Filename : F_Get_pixel
                            	//参数: PlotX,PlotY
                            	//Function : appoint pixel state,if r1=0 then point is white else point is black.
                            	//Get the pixel color at (PlotX,PlotY), and store in A.
                            	//Input    : x,y
                            	//Output   : r1      appoint pixel state on lcd
                            	//Destroy  : R1,r2,r3
                            	//用法: 	FG_GetPixel(short PlotX,short PlotY)
                            	//Example:	FG_GetPixel()
                            	//			FG_GetPixel(10,20)
                            	//////////////////////////////////////////////////////////////////////////////         
                            	F_Get_pixel:
00008383 19 D3 0F 06        			[pixel_column]=r1			//work out column
00008385 40 92              			r1=0x00
00008386 19 D3 0E 06        			[pixel_page]=r1
                            	F_Get_pixel_2:	
00008388 48 44              			cmp	r2,0x08
00008389 09 0E              			jb	F_Get_pixel_1
0000838A 48 44              			cmp	r2,0x08
0000838B 07 5E              			je	F_Get_pixel_1
0000838C 48 24              			r2-=0x08
0000838D 11 93 0E 06        			r1=[pixel_page]
0000838F 41 02              			r1+=0x01
00008390 19 D3 0E 06        			[pixel_page]=r1
00008392 4B EE              			jmp F_Get_pixel_2
                            	F_Get_pixel_1:	
00008393 09 93 08 83        			r1=TAB_pixel				
00008395 02 03              			r1+=r2
00008396 C1 94              			r2=[r1]
00008397 1A D5 10 06        			[pixel_bit]=r2				//work out pixel_bit,pixel_page
00008399 11 93 0E 06        			R1 = [pixel_page]               
0000839B 40 F0 D5 CB        	        CALL    F_Set_LCD_Page_No
0000839D 12 95 0F 06        	        R2 = [pixel_column]                
0000839F 40 F0 FE CB        	        CALL    F_Set_LCD_Column_Addr
000083A1 40 F0 80 CC        	        call	F_Read_Lcd_data
000083A3 11 93 10 06        	        r1=[pixel_bit]
000083A5 7B 97              	        r3=r3 lsr 0x04
000083A6 7B 97              	        r3=r3 lsr 0x04
000083A7 03 B3              	        r1&=r3
                            	F_Get_pixel_end:
000083A8 90 9A              			retf
                            	//////////////////////////////////////////////////////////////////////////////  
                            	//Filename : image
                            	//Function : display image
                            	//Input    : x,y,tab
                            	//Output   : display image at appoint place
                            	//Destroy  : R1,r2,r3
                            	////////////////////////////////////////////////////////////////////////////// 
                            	.external		image_width_byte
                            	.external		image_high_bit
                            	.external		image_jumpoff_point_x
                            	.external		image_jumpoff_point_y
                            	.external		image_tab
                            	.external		image_page			
                            	.external		image_bit
                            	.external		image_lcd_data
                            	.external		image_temp_data	
                            	.external		image_temp_data1
                            	.external		image_tab_pointer	
                            	.public		image
                            	image:			.proc
000083A9 88 DA              			PUSH BP,BP TO [SP];
000083AA 00 9B              			bp=sp
000083AB 44 0A              			bp+=0x04
000083AC C5 92              			r1=[bp]
000083AD 19 D3 10 06        			[image_jumpoff_point_x]=r1
000083AF 41 0A              			bp+=0x01
000083B0 C5 92              			r1=[bp]
000083B1 19 D3 11 06        			[image_jumpoff_point_y]=r1
000083B3 41 0A              			bp+=0x01
000083B4 C5 92              			r1=[bp]
000083B5 41 02              			r1+=0x01
000083B6 19 D3 12 06        			[image_tab]=r1
000083B8 41 0A              			bp+=0x01
000083B9 C5 92              			r1=[bp]
000083BA 19 D3 0E 06        			[image_width_byte]=r1
000083BC 41 0A              			bp+=0x01
000083BD C5 92              			r1=[bp]
000083BE 19 D3 0F 06        			[image_high_bit]=r1					//get parameter form c
                            	F_image:
000083C0 40 92              			r1=0x00
000083C1 19 D3 13 06        			[image_page]=r1
000083C3 19 D3 19 06        			[image_temp_data1]=r1
000083C5 12 95 11 06        			r2=[image_jumpoff_point_y]
                            	F_image_page_no_end:		
000083C7 48 44              			cmp	r2,0x08
000083C8 09 0E              			jb	F_image_page_end
000083C9 48 44              			cmp	r2,0x08
000083CA 07 5E              			je	F_image_page_end
000083CB 48 24              			r2-=0x08
000083CC 11 93 13 06        			r1=[image_page]
000083CE 41 02              			r1+=0x01
000083CF 19 D3 13 06        			[image_page]=r1
000083D1 4B EE              			jmp F_image_page_no_end
                            	F_image_page_end:
000083D2 1A D5 14 06        			[image_bit]=r2						//work out page and bit of jumping off point 		
000083D4 40 94              			r2=0x00
                            	F_image_no_end:		
000083D5 11 93 12 06        			r1=[image_tab]	
000083D7 19 D3 18 06        			[image_tab_pointer]=r1
000083D9 11 93 10 06        			r1=[image_jumpoff_point_x]	
000083DB 90 D4              			push r1,r2 to [sp]					//save [image_jumpoff_point_x],r2
                            	//		call	F_image_process_1			//display eight row
000083DC 40 F0 FE 83        			call	F_image_display_eightrow 
000083DE 90 90              			pop r1,r2 from [sp]
000083DF 41 04              			r2+=0x01
000083E0 19 D3 10 06        			[image_jumpoff_point_x]=r1
000083E2 11 93 12 06        			r1=[image_tab]
000083E4 41 02              			r1+=0x01
000083E5 19 D3 12 06        			[image_tab]=r1	
000083E7 19 D3 18 06        			[image_tab_pointer]=r1				//data pointer of image
000083E9 11 93 13 06        			R1 = [image_page]
000083EB 41 22              			r1-=0x01
000083EC 19 D3 13 06        			[image_page]=r1
000083EE 12 45 0E 06        			cmp	r2,[image_width_byte]			//if image end
000083F0 01 5E              			je	F_image_finish
000083F1 5D EE              			jmp	F_image_no_end
                            	F_image_finish:
000083F2 11 93 6A 06        			r1=[sign]							//if assembler transfer
000083F4 41 B2              			r1&=0x01
000083F5 01 4E              			jne	F_image_end
000083F6 88 98              			POP BP,BP FROM [SP];
                            	F_image_end:
000083F7 11 93 6A 06        			r1=[sign]
000083F9 09 B3 FE FF        			r1&=0xfffe
000083FB 19 D3 6A 06        			[sign]=r1		
000083FD 90 9A              			retf
                            	        .endp
                            	/////////////////////////////////////////////////////////////////////////        
                            	F_image_display_eightrow:
000083FE 40 98              			r4=0x00								//pointer of tier data
                            	image_display_eightrow_begin:		 
000083FF 11 93 13 06        			R1 = [image_page]  
00008401 49 42              			cmp	r1,0x0009						//area of	page
00008402 01 0E              			jb	  image_eightrow_begin
00008403 90 9A              			retf
                            	image_eightrow_begin:             
00008404 40 F0 D5 CB        	        CALL    F_Set_LCD_Page_No
00008406 12 95 10 06        	        R2 = [image_jumpoff_point_x]
00008408 40 F0 FE CB        	        CALL    F_Set_LCD_Column_Addr
0000840A 40 F0 80 CC        	        call	F_Read_Lcd_data				//read data on lcd
0000840C 0B B7 00 FF        	        r3&=0xff00
0000840E 1B D7 15 06        	        [image_lcd_data]=r3
00008410 12 95 10 06        	        R2 = [image_jumpoff_point_x]
00008412 40 F0 FE CB        	        CALL    F_Set_LCD_Column_Addr
00008414 13 97 18 06        			r3=[image_tab_pointer]
00008416 88 D2              			push r1 to [sp]
00008417 11 93 6A 06        			r1=[sign]
00008419 48 B2              			r1&=sign_zk_bank //0x008
0000841A 04 5E              			jz image_process_bank_1
0000841B 16 AD 0C 06        			sr|=[bank]						//
0000841D E3 96              			r3=d:[r3]
0000841E 01 EE              			jmp	image_process_bank_2
                            	image_process_bank_1:	
0000841F C3 96              			r3=[r3]
                            	image_process_bank_2:
00008420 88 90              			pop  r1 from  [sp]	
00008421 41 08              			r4+=0x01
00008422 12 95 14 06        			r2=[image_bit]						//analyze place of image
00008424 44 44              			cmp	r2,0x04							//split data of image begin
00008425 05 9E              			ja image_split_1_1

⌨️ 快捷键说明

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