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

📄 splc501sys.asm

📁 这是一个语音电压表
💻 ASM
📖 第 1 页 / 共 5 页
字号:
.public		_FG_GetCircleStyle
_FG_GetCircleStyle:		.proc
	call	_FG_GetLineStyle
	retf
	.endp
//*****************************************************************
.public		_FG_GetEllipseStyle
_FG_GetEllipseStyle:		.proc
	call	_FG_GetLineStyle
	retf
	.endp
//*****************************************************************
.public		_FG_GetCharMode
_FG_GetCharMode:		.proc
	call	_FG_GetBMPMode
	retf
	.endp
///////////////////////////////////////////////////////////////////
//Function Name: FG_SetBMPMode
//Parameters: Mode
//Description: Set bitmap put style.
//Mode: DG_BMP_COVER(default)
//      DG_BMP_and
//      DG_BMP_XOR
//Destroy: r1,r2
//Memory Modified: R_GraphicMode
//Usage:
//	FG_SetBMPMode(short Mode)
//Example:
//	FG_SetBMPMode(DG_BMP_clear)
///////////////////////////////////////////////////////////////////
.public	_FG_SetBMPMode
_FG_SetBMPMode:		.proc
		PUSH BP,BP TO [SP]
		r1=sp
		r2=bp
		r2-=r1
		cmp	r2,0x04
		je	L_no_SetBMPMode_Parameters				//parmeters?
		bp=sp
		bp+=0x04
		r1=[bp]							//get parmeters
		cmp	r1,DG_BMP_COVER
		jne	L_SetBMPMode_1_Parameters
L_SetBMPMode_0_Parameters:		
L_no_SetBMPMode_Parameters:
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode]=r1
		jmp	l_SetBMPMode_end
L_SetBMPMode_1_Parameters:
		cmp	r1,DG_BMP_CLEAR
		jne	L_SetBMPMode_2_Parameters		
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit_clear
		r1|=BMP_mode_CLEAR
		[R_GraphicMode]=r1
		jmp	l_SetBMPMode_end
L_SetBMPMode_2_Parameters:
		cmp	r1,DG_BMP_XOR
		jne	l_SetBMPMode_end		
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit_clear
		r1|=BMP_mode_XOR
		[R_GraphicMode]=r1		
l_SetBMPMode_end:
		call	_FG_GetBMPMode	
		pop	bp,bp from	[sp]
		retf
		.endp
//*****************************************************************
.public	_FG_SetCharMode
_FG_SetCharMode:
		goto	_FG_SetBMPMode
//*****************************************************************
.public	_FG_SetLineStyle
_FG_SetLineStyle:
		PUSH BP,BP TO [SP]
		r1=sp
		r2=bp
		r2-=r1
		cmp	r2,0x04
		je	L_no_SetLineMode_Parameters	//parmeters?
		bp=sp
		bp+=0x04
		r1=[bp]							//get parmeters
L_cover_SetLineMode_Parameters:		
		cmp	r1,DG_LINE_COVER
		jne	L_erase_SetLineMode_Parameters
L_no_SetLineMode_Parameters:
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		[R_GraphicMode]=r1
L_erase_SetLineMode_Parameters:		
		cmp	r1,DG_LINE_ERASE
		jne L_solid_SetLineMode_Parameters
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_ERASE
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_solid_SetLineMode_Parameters:
		cmp	r1,DG_LINE_HOLLOW
		jne L_dotted_SetLineMode_Parameters
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_HOLLOW
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_dotted_SetLineMode_Parameters:
		cmp	r1,DG_LINE_DOTTED
		jne L_solid_cover_SetLineMode
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_DOTTED
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_solid_cover_SetLineMode:
		cmp	r1,DG_LINE_HOLLOW_ERASE
		jne L_dotted_cover_SetLineMode
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_HOLLOW_ERASE
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_dotted_cover_SetLineMode:
		cmp	r1,DG_LINE_DOTTED_COVER
		jne L_solid_xor_SetLineMode
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_DOTTED_COVER
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_solid_xor_SetLineMode:
		cmp	r1,DG_LINE_SOLID_XOR
		jne L_dotted_xor_SetLineMode
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_SOLID_XOR
		[R_GraphicMode]=r1
		jmp	l_SetLineMode_end
L_dotted_xor_SetLineMode:
		cmp	r1,DG_LINE_DOTTED_XOR
		jne l_SetLineMode_end
		r1=[R_GraphicMode]
		r1&=line_mode_bit_clear
		r1|=line_mode_DOTTED_XOR
		[R_GraphicMode]=r1				
l_SetLineMode_end:
		call	_FG_GetLineStyle	
		pop	bp,bp from	[sp]
		retf
//*****************************************************************
.public	_FG_SetRectStyle
_FG_SetRectStyle:
		goto _FG_SetLineStyle
//*****************************************************************
.public	_FG_SetCircleStyle
_FG_SetCircleStyle:
		goto _FG_SetLineStyle
//*****************************************************************
.public	_FG_SetEllipseStyle
_FG_SetEllipseStyle:
		goto _FG_SetLineStyle
//*****************************************************************
FG_SetMode:		.proc
L_SetMode_cover_Parameters:
		cmp	r1,DG_PIXEL_COVER
		jne	L_SetMode_clear_Parameters
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		[R_GraphicMode_temp]=r1
		jmp	l_SetMode_end
L_SetMode_clear_Parameters:	
		cmp	r1,DG_PIXEL_CLEAR
		jne	L_xor_Parameters
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=pixel_mode_CLEAR
		[R_GraphicMode_temp]=r1				
		jmp	l_SetMode_end
L_xor_Parameters:		
		cmp	r1,DG_PIXEL_XOR
		jne	l_SetMode_end
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=pixel_mode_XOR
		[R_GraphicMode_temp]=r1
l_SetMode_end:
		retf
		.endp
//*****************************************************************
FG_SetStyle:
L_cover_SetStyle_Parameters:
		cmp	r1,DRAW_COVER
		jne	L_erase_SetStyle_Parameters
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		[R_GraphicMode_temp]=r1
L_erase_SetStyle_Parameters:		
		cmp	r1,DRAW_ERASE
		jne L_solid_SetStyle_Parameters
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_ERASE
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_solid_SetStyle_Parameters:
		cmp	r1,DRAW_HOLLOW
		jne L_dotted_SetStyle_Parameters
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_HOLLOW
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_dotted_SetStyle_Parameters:
		cmp	r1,DRAW_DOTTED
		jne L_solid_cover_SetStyle
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_DOTTED
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_solid_cover_SetStyle:
		cmp	r1,DRAW_HOLLOW_ERASE
		jne L_dotted_cover_SetStyle
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_HOLLOW_ERASE
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_dotted_cover_SetStyle:
		cmp	r1,DRAW_DOTTED_COVER
		jne L_solid_xor_SetStyle
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_DOTTED_COVER
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_solid_xor_SetStyle:
		cmp	r1,DRAW_SOLID_XOR
		jne L_dotted_xor_SetStyle
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=draw_mode_SOLID_XOR
		[R_GraphicMode_temp]=r1
		jmp	l_SetStyle_end
L_dotted_xor_SetStyle:
		cmp	r1,DRAW_DOTTED_XOR
		jne l_SetStyle_end
		r1=[R_GraphicMode_temp]
		r1&=line_mode_bit_clear
		r1|=line_mode_bit
		[R_GraphicMode_temp]=r1				
l_SetStyle_end:
		retf
///////////////////////////////////////////////////////////////////
//Function Name: FG_PutBitmap
//Parameters: BmpX,BmpY,BmpNum,Mode
//Description: Print a bitmap at (BmpX,BmpY) with assigned mode.
//Mode:
//	DG_BMP_COVER(default)
//	DG_BMP_clear
//	DG_BMP_XOR
//Destroy: r1,r2,r3,r4
//Usage: FG_PutBitmap(short BmpNum,short BmpX,short BmpY,short Mode)
//Example:
//	FG_PutBitmap(0,10,tab,DG_BMP_COVER)
//	FG_PutBitmap(1,10,tab)
//	FG_PutBitmap(tab,DG_BMP_XOR)
//	FG_PutBitmap(tab)
///////////////////////////////////////////////////////////////////
.external		bp_temp
.external		R_GraphicMode_temp
.external		_TAB_0
.external		sign
//-----------------------------------
.public			_FG_PutBitmap
_FG_PutBitmap:		.proc
		PUSH BP,BP TO [SP]
		r1=sp
		r2=bp
		[bp_temp]=r2
		r2-=r1
		push r1,r4 to [sp]
		call _F_image_bank
		pop r1,r4 from [sp]
L_PutBitmap_Parameters_none:
		cmp	r2,0x04
		je	L_no_PutBitmap_Parameters
L_PutBitmap_Parameters_one:
		cmp	r2,0x05
		jne	L_PutBitmap_Parameters_two
		call	F_PutBitmap_Parameters_one
		jmp		L_PutBitmap
L_PutBitmap_Parameters_two:		
		cmp	r2,0x06
		jne	L_PutBitmap_Parameters_three
		call	F_PutBitmap_Parameters_two
		jmp		L_PutBitmap
L_PutBitmap_Parameters_three:
		cmp	r2,0x07
		jne	L_PutBitmap_Parameters_four
		call	F_PutBitmap_Parameters_three
		jmp		L_PutBitmap
L_PutBitmap_Parameters_four:
		cmp	r2,0x08
		jne	L_PutBitmap_Parameters_three
		call	F_PutBitmap_Parameters_four
L_PutBitmap:
		r1=[sign]
		r1|=0x09
		[sign]=r1
	//	CALL	F_image_bank
		call	F_image
		r1=[sign]
		r1&=0xfff7
		[sign]=r1
		r1=[R_GraphicMode_temp]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode_temp]=r1
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit
		r1|=[R_GraphicMode_temp]
		[R_GraphicMode_temp]=r1
			
L_no_PutBitmap_Parameters:			
		POP	BP,BP FROM [SP]
		retf
		.endp
/////////////////////////////////	
.external  picture_data
.external  bank
.public		_F_image_bank
_F_image_bank:
		r4=0x00
		//////
		r2=sr
		r2&=0x03ff
		r1+=0x04
		r1=[r1]
F_image_bank_loop:		
		sr=r2
		r3=D:[r1]
		cmp r3,r1
		je F_image_bank_0
		r4+=0x0400
		r2+=0x0400
		jmp F_image_bank_loop
F_image_bank_0:	
		[bank]=r4
		retf
//----------------------------------------------------------------
F_PutBitmap_Parameters_one:
		r2=[bp_temp]
		r2-=0x01
		r1=[r2]
		r1+=0x01
		[image_tab]=r1
		r1=[_x0]
		[image_jumpoff_point_x]=r1
		r1=[_y0]
		[image_jumpoff_point_y]=r1
		r1=[R_GraphicMode_temp]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode_temp]=r1
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit
		r1|=[R_GraphicMode_temp]
		[R_GraphicMode_temp]=r1
		
		r2=[image_tab]
		r2-=0x02
		sr|=[bank]
		r1=d:[r2]
		[image_high_bit]=r1
		r2=[image_tab]
		r2-=0x03
		r1=d:[r2]
		[image_width_byte]=r1
		retf
//----------------------------------------------------------------
F_PutBitmap_Parameters_two:
		r1=[R_GraphicMode_temp]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode_temp]=r1
		r2=[bp_temp]
		r2-=0x01
		r1=[r2]
F_Put_Para_two_1:	
		cmp	r1,DG_BMP_CLEAR
		jne	F_Put_Para_two_2
		r1=[R_GraphicMode_temp]
		r1|=BMP_mode_CLEAR
		[R_GraphicMode_temp]=r1
		jmp	F_Put_Para_two_0
F_Put_Para_two_2:
		cmp	r1,DG_BMP_XOR
		jne	F_Put_Para_two_0
		r1=[R_GraphicMode_temp]
		r1|=BMP_mode_XOR
		[R_GraphicMode_temp]=r1
F_Put_Para_two_0:				
		r2-=0x01
		r1=[r2]
		r1+=0x01
		[image_tab]=r1
		r1=[_x0]
		[image_jumpoff_point_x]=r1
		r1=[_y0]
		[image_jumpoff_point_y]=r1
		sr|=[bank]
		r2=[image_tab]
		r2-=0x02
		r1=d:[r2]
		[image_high_bit]=r1
		r2=[image_tab]
		r2-=0x03
		r1=d:[r2]
		[image_width_byte]=r1
		retf
//----------------------------------------------------------------
F_PutBitmap_Parameters_three:
		r2=[bp_temp]
		r2-=0x01
		r1=[r2]
		[image_jumpoff_point_y]=r1
		r2-=0x01
		r1=[r2]
		[image_jumpoff_point_x]=r1
		r2-=0x01
		r1=[r2]
		r1+=0x01
		[image_tab]=r1
	
		r1=[R_GraphicMode_temp]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode_temp]=r1
		r1=[R_GraphicMode]
		r1&=bmp_mode_bit
		r1|=[R_GraphicMode_temp]
		[R_GraphicMode_temp]=r1
	
		r2=[image_tab]
		r2-=0x02
		sr|=[bank]
		r1=d:[r2]
		[image_high_bit]=r1
		r2=[image_tab]
		r2-=0x03
		r1=d:[r2]
		[image_width_byte]=r1
		retf
//----------------------------------------------------------------
F_PutBitmap_Parameters_four:
		r1=[R_GraphicMode_temp]
		r1&=bmp_mode_bit_clear
		[R_GraphicMode_temp]=r1
		r2=[bp_temp]
		r2-=0x01
		r1=[r2]
F_Put_Para_four_1:	
		cmp	r1,DG_BMP_CLEAR
		jne	F_Put_Para_four_2
		r1=[R_GraphicMode_temp]
		r1|=BMP_mode_CLEAR
		[R_GraphicMode_temp]=r1
		jmp	F_Put_Para_four_0
F_Put_Para_four_2:
		cmp	r1,DG_BMP_XOR
		jne	F_Put_Para_four_0
		r1=[R_GraphicMode_temp]
		r1|=BMP_mode_XOR
		[R_GraphicMode_temp]=r1
F_Put_Para_four_0:
		r2-=0x01
		r1=[r2]
		[image_jumpoff_point_y]=r1
		r2-=0x01
		r1=[r2]
		[image_jumpoff_point_x]=r1
		r2-=0x01
		r1=[r2]
		r1+=0x01
		[image_tab]=r1
		r2=[image_tab]
		r2-=0x02
		sr|=[bank]
		r1=d:[r2]
		[image_high_bit]=r1
		r2=[image_tab]
		r2-=0x03
		r1=d:[r2]
		[image_width_byte]=r1
		retf

//////////////////////////////////////////////////////////////////////////////
//Filename : _FG_LineTo
//参数: _line_x0,_line_y0,_line_x1,_line_y1
//Mode:	DG_LINE_COVER(default)
//		DG_LINE_ERASE
//		DG_LINE_SOLID
//		DG_LINE_DOTTED
//		DG_LINE_SOLID_COVER
//		DG_LINE_DOTTED_COVER
//		DG_LINE_SOLID_XOR
//		DG_LINE_DOTTED_XOR
//Function  Description	:GIVE A jumping_off POINT and end point
//  					 DISPLAY A line ON LCD with the style assigned in R_GraphicMode.
//			 
//Input    :(_line_x0,_line_y0)(_line_x1,_line_y1)
//Output   :
//Destory  : R1,R2,R3,R4
//用法:	FG_LineTo(short StartX,short StartY,short EndX,short EndY)
//Example:	FG_LineTo(0,0,20,20)
//			FG_LineTo(R_Var1,R_Var2)
//////////////////////////////////////////////////////////////////////////////
.external	_line_x0								//直线起点X值

⌨️ 快捷键说明

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