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

📄 sdrv_draw3drect.s01

📁 一种彩屏驱动以及画点,填充图片和填充数据的一些程序
💻 S01
字号:
	NAME	sdrv_draw3drect(16)
	RSEG	BAC_DW2(0)
	EXTERN	BAPI_DrawRectFrame
	EXTERN	BAPI_FillRect
	PUBLIC	Sdrv_Draw3DRect
	EXTERN	dc
	EXTERN	region
	EXTERN	?CLZ80L_4_04_L00
	RSEG	BAC_DW2
Sdrv_Draw3DRect:
; 1.	/*
; 2.	********************************************************************************
; 3.	*                       ACTOS
; 4.	*                  ui dirver show picture
; 5.	*
; 6.	*                (c) Copyright 2002-2003, Actions Co,Ld.
; 7.	*                        All Right Reserved
; 8.	*
; 9.	* File   : UI_Draw3DRect.c
; 10.	* By     : Rcmai
; 11.	* Version: 1> v1.00     first version     10/17/2003 10:46PM
; 12.	********************************************************************************
; 13.	*/
; 14.	#include "display.h"
; 15.	#include "Drv_S6B33B0A.h"
; 16.	
; 17.	#pragma memory=constseg(BAS_DW2)
; 18.	#pragma memory=default
; 19.	
; 20.	#pragma memory=dataseg(BAD_DW2)
; 21.	//SD_RW sdrw;
; 22.	//extern  unsigned char BufPage;
; 23.	#pragma memory=default
; 24.	
; 25.	#pragma codeseg(BAC_DW2)
; 26.	
; 27.	////*******************************************************************************/
; 28.	///* 把指定区域填充成画笔颜色
; 29.	//** FUNCTION:     Draw3DRect
; 30.	//**
; 31.	//** Description:  
; 32.	//**
; 33.	//**  input
; 34.	//**        region_t * D3region: 要画3D区域的区域大小
; 35.	//**        
; 36.	//**  output
; 37.	//**     none
; 38.	//********************************************************************************/
; 39.	
; 40.	void Sdrv_Draw3DRect (region_t * D3region, unsigned char type)
; 41.	{
	PUSH	IX
	PUSH	BC
	PUSH	AF
	PUSH	AF
	PUSH	DE
	POP	IX
; 42.	    COLORREF PenColor_bak;
; 43.	
; 44.	    PenColor_bak = dc.PenColor;//保存当前画笔颜色
	LD	HL,0
	ADD	HL,SP
	LD	BC,(dc+2)
	LD	DE,(dc)
	LD	(HL),E
	INC	HL
	LD	(HL),D
	INC	HL
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 45.	    
; 46.	    switch (type)
	INC	HL
	LD	A,(HL)
	CP	0
	JR	NZ,?0002
?0001:
; 47.	    {
; 48.	    case D3Normalframe_def://加选中框
; 49.	        dc.PenColor = SelectedColor_def;
	LD	BC,0
	LD	(dc),BC
	LD	(dc+2),BC
; 50.	        BAPI_DrawRectFrame(D3region);
	PUSH	IX
	POP	DE
	CALL	BAPI_DrawRectFrame
; 51.	        break;
	JP	?0004
?0002:
	CP	1
	JR	NZ,?0003
; 52.	
; 53.	    case D3KeyUp_def://加突出效果
; 54.	        //先画两条背光边
; 55.	        dc.PenColor = BackLightColor_def;
	LD	BC,0
	LD	HL,33808
	LD	(dc),HL
	LD	(dc+2),BC
; 56.	        region = *D3region;
	LD	DE,region
	PUSH	IX
	POP	HL
	LD	C,4
	LDIR
; 57.	        region.height = 1;
; 58.	        region.y = D3region->y + D3region->height;
; 59.	        BAPI_FillRect(&region);
	CALL	?0008
; 60.	
; 61.	        region = *D3region;
; 62.	        region.width = 1;
	LD	A,1
	LD	(region+2),A
; 63.	        region.x = D3region->x + D3region->width;
	LD	A,(IX+2)
	ADD	A,(IX+0)
	LD	(region),A
; 64.	        BAPI_FillRect(&region);
	CALL	?0007
; 65.	        
; 66.	        //再画两条向光边
; 67.	        dc.PenColor = FaceLightColor_def;
; 68.	        region = *D3region;
; 69.	        region.height = 1;
	LD	A,1
	LD	(region+3),A
; 70.	        BAPI_FillRect(&region);
	CALL	?0009
; 71.	
; 72.	        region = *D3region;
; 73.	        region.width = 1;
	LD	A,1
	LD	(region+2),A
; 74.	        BAPI_FillRect(&region);        
	JR	?0006
	CALL	BAPI_FillRect
; 75.	        break;
	JR	?0004
?0003:
	CP	2
	JR	NZ,?0004
; 76.	
; 77.	    case D3KeyDown_def://加凹进效果
; 78.	        //先画两条背光边
; 79.	        dc.PenColor = BackLightColor_def;
	LD	BC,0
	LD	HL,33808
	LD	(dc),HL
	LD	(dc+2),BC
; 80.	        region = *D3region;
	LD	DE,region
	PUSH	IX
	POP	HL
	LD	C,4
	LDIR
; 81.	        region.height = 1;
	LD	A,1
	LD	(region+3),A
; 82.	        BAPI_FillRect(&region);
	CALL	?0009
; 83.	
; 84.	        region = *D3region;
; 85.	        region.width = 1;
	LD	A,1
	LD	(region+2),A
; 86.	        BAPI_FillRect(&region);        
	CALL	?0007
; 87.	
; 88.	        //再画两条向光边
; 89.	        dc.PenColor = FaceLightColor_def;
; 90.	        region = *D3region;
; 91.	        region.height = 1;
; 92.	        region.y = D3region->y + D3region->height;
; 93.	        BAPI_FillRect(&region);
	CALL	?0008
; 94.	
; 95.	        region = *D3region;
; 96.	        region.width = 1;
	LD	A,1
	LD	(region+2),A
; 97.	        region.x = D3region->x + D3region->width;
	LD	A,(IX+2)
	ADD	A,(IX+0)
	LD	(region),A
; 98.	        BAPI_FillRect(&region);
?0006:
	LD	DE,region
	CALL	BAPI_FillRect
; 99.	        break;
?0004:
; 100.	
; 101.	    default:
; 102.	        break;
?0000:
; 103.	    }
; 104.	
; 105.	    dc.PenColor = PenColor_bak;//恢复画笔颜色
	LD	HL,0
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	EX	DE,HL
	LD	(dc),HL
	LD	(dc+2),BC
; 106.	    return;
; 107.	}
	POP	HL
	POP	HL
	POP	HL
	POP	IX
	RET
?0007:
	LD	DE,region
	CALL	BAPI_FillRect
	LD	HL,50712
	LD	(dc),HL
	LD	(dc+2),BC
	LD	DE,region
	PUSH	IX
	POP	HL
	LD	C,4
	LDIR
	RET
?0008:
	LD	A,1
	LD	(region+3),A
	LD	A,(IX+3)
	ADD	A,(IX+1)
	LD	(region+1),A
?0009:
	LD	DE,region
	CALL	BAPI_FillRect
	LD	DE,region
	PUSH	IX
	POP	HL
	LD	C,4
	LDIR
	RET
	END

⌨️ 快捷键说明

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