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

📄 splc501sys.lst

📁 电子词典的设计开发
💻 LST
📖 第 1 页 / 共 5 页
字号:
                            	image_split_1_2:
00008426 40 44              			cmp r2 ,0x00
00008427 0A 5E              			je	image_split_1_3
00008428 43 97              			r3=r3 lsl 0x01		
00008429 41 24              			r2-=0x01
0000842A 45 EE              			jmp	image_split_1_2
                            	image_split_1_1:
0000842B 5B 97              			r3=r3 lsl 0x04
0000842C 44 24              			r2-=0x04
                            	image_split_1_4:	
0000842D 40 44              			cmp r2 ,0x00
0000842E 03 5E              			je	image_split_1_3
0000842F 43 97              			r3=r3 lsl 0x01
00008430 41 24              			r2-=0x01
00008431 45 EE              			jmp	image_split_1_4
                            	image_split_1_3:
00008432 1B D7 16 06        			[image_temp_data]=r3				//split data of image end
                            			//r3&=0xff00
                            		
00008434 0B B7 00 FF        			r3&=0xff00
00008436 11 93 69 06        			r1=[R_GraphicMode_temp]
00008438 09 B3 C0 01        			r1&=0x001c0
                            	image_process_cover_frist:	
0000843A 03 4E              			jnz	image_process_xor_frist
0000843B 13 A7 15 06        			r3|=[image_lcd_data]				//or data on lcd
                            			
0000843D 0A EE              			jmp	image_proc_mod_frist_end
                            	image_process_xor_frist:
0000843E 09 43 00 01        			cmp	r1,0x0100
00008440 03 5E              			je	image_process_clear_frist
00008441 13 87 15 06        			r3^=[image_lcd_data]				//xor data on lcd
00008443 04 EE              			jmp	image_proc_mod_frist_end
                            	image_process_clear_frist:		
00008444 0B 87 00 FF        			r3^=0xff00
00008446 13 B7 15 06        			r3&=[image_lcd_data]
                            	image_proc_mod_frist_end:
                            				
                            			//r3|=[image_lcd_data]		
00008448 7B 97              			r3=r3 lsr 0x04
00008449 7B 97              			r3=r3 lsr 0x04
0000844A 40 F0 AE CC        			call	F_Display_point				//display frist part  data
                            			
0000844C 11 93 13 06        			R1 = [image_page]
0000844E 41 22              			r1-=0x01 
0000844F 48 42              			cmp	r1,0x08							//if overstep area
00008450 02 0E              			jb	  image_second_begin
00008451 80 FE 7D 84        			goto	image_process_end
                            	image_second_begin:		
00008453 40 F0 D5 CB        	        CALL    F_Set_LCD_Page_No
00008455 12 95 10 06        	        R2 = [image_jumpoff_point_x]                
00008457 40 F0 FE CB        	        CALL    F_Set_LCD_Column_Addr
00008459 40 F0 80 CC        	        call	F_Read_Lcd_data				//read data on lcd
0000845B 0B B7 00 FF        	        r3&=0xff00
0000845D 7B 97              	        r3=r3 lsr 0x04
0000845E 7B 97              	        r3=r3 lsr 0x04
0000845F 1B D7 15 06        	        [image_lcd_data]=r3
00008461 12 95 10 06        	        R2 = [image_jumpoff_point_x]
00008463 40 F0 FE CB        	        CALL    F_Set_LCD_Column_Addr
00008465 13 97 16 06        			r3=[image_temp_data]
                            			//r3|=[image_lcd_data]
00008467 0B B7 FF 00        			r3&=0x00ff	
                            			
00008469 11 93 69 06        			r1=[R_GraphicMode_temp]
0000846B 09 B3 C0 01        			r1&=bmp_mode_bit
                            	image_process_cover_second:	
0000846D 03 4E              			jne	image_process_xor_second
0000846E 13 A7 15 06        			r3|=[image_lcd_data]				//or data on lcd
                            	//		[image_temp_data1]=r3
00008470 0A EE              			jmp	image_proc_mod_second_end
                            	image_process_xor_second:
00008471 09 43 00 01        			cmp	r1,0x0100
00008473 03 5E              			je	image_process_clear_second
00008474 13 87 15 06        			r3^=[image_lcd_data]				//xor data on lcd
00008476 04 EE              			jmp	image_proc_mod_second_end
                            	image_process_clear_second:		
00008477 0B 87 FF 00        			r3^=0x00ff
00008479 13 B7 15 06        			r3&=[image_lcd_data]
                            	image_proc_mod_second_end:	
0000847B 40 F0 AE CC        			call	F_Display_point				//display remanent part  data
                            	image_process_end:	
0000847D 11 93 10 06        			r1=[image_jumpoff_point_x]
0000847F 41 22              			r1-=0x01
00008480 19 D3 10 06        			[image_jumpoff_point_x]=r1
00008482 13 97 18 06        			r3=[image_tab_pointer]
00008484 13 07 0E 06        			r3+=[image_width_byte]
00008486 1B D7 18 06        			[image_tab_pointer]=r3
00008488 14 49 0F 06        			cmp	r4,[image_high_bit]
0000848A 02 5E              			je	image_process_complete				//if display complete 
0000848B 80 FE FF 83        			goto	image_display_eightrow_begin
                            	image_process_complete:		
0000848D 90 9A              			retf
                            	
                            	//////////////////////////////////////////////////////////////////////////////  
                            	//R_GraphicMode:
                            	//		1 byte for graphic mode.
                            	//
                            	//		Bit7,6:	Bitmap/Char/String
                            	//						00:COVER		;Default Mode
                            	//						01:AND
                            	//						10:OR
                            	//						11:XOR
                            	//		Bit5:	(unused)
                            	//		Bit4,3:	Rect/Line/Pixel
                            	//					 	00:SOLID_COVER	;Default (Bar) Mode
                            	//					 	01:DOTTED_COVER
                            	//				     	10:SOLID_XOR
                            	//				     	11:DOTTED_XOR
                            	//
                            	//		Bit2:	Pixel Toggle
                            	//						0:COVER(black)(default)
                            	//						1:ERASE(white)
                            	//
                            	//					(Toggle Bit for Dotted Line Mode)
                            	//					IF bit3=1, that is dotted mode
                            	//					then bit2 will be toggled between pixels
                            	//					IF bit3=0 then no toggle occured
                            	
                            	//		Bit1:	(unused)
                            	//		Bit0:	Swapping Flag for LineTo
                            	//		@
                            	
                            	//X0: 1 byte x-coordinate of current point (CP).
                            	//Y0: 1 byte y-coordinate of CP.	
                            	.external		R_GraphicMode
                            	.external		_x0
                            	.external		_y0
                            	///////////////////////////////////////////////////////////////////
                            	//Function Name: FG_InitGraphic
                            	//Parameters:
                            	//Description: Initializing LCD graphics parameters
                            	//Destroy:r1,r2,f3
                            	//Memory Modified:
                            	//Usage: FG_InitGraphic()
                            	//Example:
                            	//	FG_InitGraphic()
                            	///////////////////////////////////////////////////////////////////
                            	.public		_FG_InitGraphic
                            	_FG_InitGraphic:		.proc
0000848E 40 F0 C9 CC        			call	_Init_IO		//Initial i/o
00008490 40 F0 E1 CA        			call	_Init_LCD_501	//Initial SPLC501
00008492 40 92              			r1=0x00
00008493 19 D3 69 06        			[R_GraphicMode_temp]=r1
00008495 19 D3 6A 06        			[sign]=r1
00008497 19 D3 AD 06        			[_x0]=r1
00008499 19 D3 AE 06        			[_y0]=r1
0000849B 90 9A              			retf
                            			.endp
                            			
                            	///////////////////////////////////////////////////////////////////
                            	//Function Name: FG_ClearScreen
                            	//Parameters: DG_CLS_ERASE(default), DG_CLS_FILL
                            	//Description: Clear LCD screen with 0 or 1.
                            	//Destroy: r1,r2,r3,r4
                            	//Memory Modified: None
                            	//Usage: 	FG_ClearScreen(short arg)
                            	//Example:
                            	//	FG_ClearScreen()
                            	//	FG_ClearScreen(DG_CLS_FILL)
                            	///////////////////////////////////////////////////////////////////
                            	.public		_FG_ClearScreen
                            	_FG_ClearScreen:		.proc
0000849C 88 DA              			PUSH BP,BP TO [SP]
0000849D 00 93              			r1=sp
0000849E 05 95              			r2=bp
0000849F 01 25              			r2-=r1
000084A0 44 44              			cmp	r2,0x04
000084A1 06 5E              			je	clearscreen
000084A2 00 9B              			bp=sp
000084A3 44 0A              			bp+=0x04
000084A4 C5 92              			r1=[bp]
000084A5 40 42              			cmp	r1,0x00
000084A6 01 5E              			je	clearscreen
000084A7 02 EE              			jmp	fillscreen
                            	clearscreen:
000084A8 40 96              			r3=0x0000
000084A9 02 EE              			jmp	fillaction
                            	fillscreen:		
000084AA 0B 97 00 FF        			r3=0xff00
                            	fillaction:
000084AC 40 F0 34 CC        			call	F_Fill_All_LCD_Value	
000084AE 88 98              			pop	bp,bp from	[sp]
000084AF 90 9A              			retf
                            			.endp
                            	///////////////////////////////////////////////////////////////////		
                            	//Function Name:	FG_GetBMPMode
                            	//				FG_GetLineStyle
                            	//				FG_GetRectStyle
                            	//				FG_GetCircleStyle
                            	//				FG_GetEllipseStyle
                            	//				FG_GetCharMode
                            	//Description: Get current graphic mode.
                            	//Destroy: r1
                            	//Memory Modified: 
                            	//Usage:
                            	//	FG_GetBMPMode()
                            	//	FG_GetLineStyle()
                            	//	FG_GetRectStyle()
                            	//	FG_GetCircleStyle()
                            	//	FG_GetEllipseStyle()
                            	//	FG_GetCharMode()
                            	///////////////////////////////////////////////////////////////////
                            	.public		_FG_GetBMPMode
                            	_FG_GetBMPMode:		.proc
000084B0 88 DA              		PUSH BP,BP TO [SP]
000084B1 11 93 69 06        		r1=[R_GraphicMode_temp]
000084B3 09 B3 3F FE        		r1&=bmp_mode_bit_clear
000084B5 19 D3 69 06        		[R_GraphicMode_temp]=r1
000084B7 11 93 AC 06        		r1=[R_GraphicMode]
000084B9 09 B3 C0 01        		r1&=bmp_mode_bit
000084BB 11 A3 69 06        		r1|=[R_GraphicMode_temp]
000084BD 19 D3 69 06        		[R_GraphicMode_temp]=r1
000084BF 88 98              		pop	bp,bp from	[sp]
000084C0 90 9A              		retf
                            		.endp
                            	//*****************************************************************
                            	.public		_FG_GetLineStyle
                            	_FG_GetLineStyle:		.proc
000084C1 88 DA              		PUSH BP,BP TO [SP]
000084C2 11 93 69 06        		r1=[R_GraphicMode_temp]
000084C4 09 B3 C3 FF        		r1&=dotted_mode_bit_clear

⌨️ 快捷键说明

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